Facade外觀模式

2021-09-02 12:20:10 字數 1630 閱讀 2571

外觀模式(facade)是結構型設計模式,外觀模式就是為乙個子系統中的多個類提供統一介面的方法,把乙個元件單元構建為乙個子系統有助於減少軟體的複雜性,而且可以使子系統與其他元件的通訊關係更加間接、易控制,可以最大限度的降低元件間的耦合度。達到這乙個目標的最好方法就是引進乙個外觀類,讓它為子系統的通用功能提供乙個簡單一致的公共介面。

在別處看到乙個例子,就是組裝電腦,需要一台電腦,你可以去電子城,選擇主機板、顯示器、cpu、各種外設等組裝一台電腦。當然,為了方便,也可以直接找一家裝機公司,它們負責將各種電腦元件組裝好。這就是外觀模式的概念。外觀模式就是將多個關係比較複雜的類放到乙個外觀類中統一處理,從而外部呼叫起來只要與外觀打交道,而不必清楚內部各個類之間的呼叫關係,簡化了客戶端呼叫的複雜度。

考慮一下在atm取款的系統:

系統介面:

package facade;

public inte***ce getmoney

子系統1:

package facade;

public class insertcards implements getmoney

@override

public void dothings()

}

子系統2:

package facade;

public class password implements getmoney

@override

public void dothings()

}

子系統3:

package facade;

public class getcash implements getmoney

@override

public void dothings()

}

如果不使用facade模式,則客戶端程式:

package facade;

public class client_without_facade

}

如果銀行在某一天要增加atm取款的安全,要增加atm取款時候的步驟,增加步驟a,那麼必須要修改客戶端程式,這樣代價就高了。如果使用facade模式,則編寫facade類:

package facade;

public class facade

public void dothings()

}

客戶端**:

package facade;

public class client

}

這樣如果要做出上述修改,則只需修改facade類和增加子系統即可,不用修改client程式。

綜上所述,facade模式的優點:

1.鬆散耦合。外觀模式鬆散了客戶端與子系統的耦合關係,讓子系統內部的模組可以更容易擴充套件和維護。

2.簡單易用。外觀模式讓子系統更易用,客戶商無需要了解子系統的內部細節,更不需要與各子系統模組進行互動,只需要與外觀物件進行互動就可以呢,由外觀模式為客戶端提供一站式服務。

外觀模式(Facade)

外觀模式的定義是,為子系統中的一組介面提供乙個一致的inte ce介面介面。外觀模式是個很簡單,但很重要的模式,它主要思想是將表現層和邏輯層隔離,封裝底層的複雜處理,只為使用者提供簡單的介面,這樣的例子隨處可見。外觀模式也叫門面模式,它很多時候更是一種系統架構的設計,在我所做的專案中,就實現了門面模...

Facade外觀模式

facade外觀模式,是一種結構型模式,它主要解決的問題是 元件的客戶和元件中各種複雜的子系統有了過多的耦合,隨著外部客戶程式和各子系統的演化,這種過多的耦合面臨很多變化的挑戰。facade設計模式更注重從架構的層次去看整個系統,而不是單個類的層次。facade外觀模式,是一種結構型模式,它主要解決...

Facade外觀模式

facade外觀模式,是一種結構型模式,它主要解決的問題是 元件的客戶和元件中各種複雜的子系統有了過多的耦合,隨著外部客戶程式和各子系統的演化,這種過多的耦合面臨很多變化的挑戰。在這裡我想舉乙個例子 比如,現在有一輛汽車,我們 客戶程式 要啟動它,那我們就要發動引擎 子系統1 使四個車輪 子系統2 ...