1. 程式人生 > >C#-設計模式-外觀模式

C#-設計模式-外觀模式

產生 執行效率 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(string
info) { } } 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#-設計模式-外觀模式