C#-設計模式-外觀模式
阿新 • • 發佈:2019-03-15
產生 執行效率 inf 避免 password username admin 門面 info
1.定義
當想訪問一堆子接口的時候,為了防止客戶端和子接口的耦合,我們將子接口上層重新建立一個外觀層,讓外觀層和客戶端發生關系。
這樣就避免了修改子接口的同時,再去修改客戶端,因此外觀模式有時候又被稱作門面模式。
2.代碼實現
public class UserDAL { public bool CheckUser(string username, string password) { return true; } } public class LogDAL { public void AddLog(stringinfo) { } } public class UserService { UserDAL userDAL = new UserDAL(); LogDAL logDAL = new LogDAL(); public void CheckUser(string username, string password) { var result = userDAL.CheckUser(username, password); if (result) { logDAL.AddLog(username+ "登錄成功"); } } }
本來是兩個子接口LogDAL和UserDAL,因為要將接口和客戶端隔離,因此產生了UserService類這麽門面類
調用的時候,只需要:
public class Client { UserService userService = new UserService(); public void Main() { userService.CheckUser("admin", "123123"); } }
這個代碼是不是十分熟悉,對的,MVC框架的三層結構,為了避免層與層之間相互汙染,就采取的是外觀模式的設計手法。
這樣不同層的邏輯只會應該該層的代碼,不會對其他層次產生影響,這樣就降低了代碼的耦合度,後期業務增加和修改的時候,就會更方便。
3.特點
優點:分層次的代碼設計方式,降低了代碼的耦合度,後期功能擴展和功能修改的時候,可以將對其余代碼的影響降低;
缺點:很明顯,這樣寫代碼是增加代碼的冗余的,對執行效率肯定是有影響的。而且需求更改的時候違背了開閉原則。
C#-設計模式-外觀模式