23種設計模式 11 Facade模式

2021-07-11 21:57:39 字數 864 閱讀 6657

facade(外觀)模式為子系統中的一組介面提供乙個一致的介面,facade模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。實際上是為客戶端和子系統之間新增乙個層,客戶端只能通過這個層來訪問子系統,好比中介公司。

如圖:

facade模式結構圖:

facade模式與adapter模式有些相似之處,都是為上層提供乙個可以訪問的介面,不過不同之處是,adapter是對單一的類的適配,而facade是提取了各個子系統的介面。

**實現:

#include "iostream"

using namespace std;

class subsystem1

; ~subsystem1(){};

void operation();

};class subsystem2

; ~subsystem2(){};

void operation();

};class facade

;void subsystem1::operation()

void subsystem2::operation()

facade::facade()

facade::~facade()

int main()

僅需要乙個facade物件,因此facade物件通常屬於singleton 模式

23種設計模式(11) 策略模式

定義 定義一組演算法,將每個演算法都封裝起來,並且使他們之間可以互換。型別 行為類模式 類圖 策略模式是對演算法的封裝,把一系列的演算法分別封裝到對應的類中,並且這些類實現相同的介面,相互之間可以替換。在前面說過的行為類模式中,有一種模式也是關注對演算法的封裝 模版方法模式。對照類圖可以看到,策略模...

23種設計模式(11) 責任連模式

定義 使多個物件都有機會處理請求,從而避免了請求的傳送者和接收者之間的耦合關係。將這些物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有物件處理它為止。型別 行為類模式 類圖 首先來看一段 public void test int i,request request else if i 2 else i...

23種設計模式(11) 責任連模式

定義 使多個物件都有機會處理請求,從而避免了請求的傳送者和接收者之間的耦合關係。將這些物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有物件處理它為止。型別 行為類模式 類圖 首先來看一段 public void test int i,request request else if i 2 else i...