Facade 外觀模式

2021-08-15 07:49:06 字數 1016 閱讀 3462

外觀模式就是將子系統交給乙個中間層facade來進行管理,使用者直接呼叫facade的介面。

一般來說,如果功能較多,那麼需要對功能模組進行單獨實現,即實現子系統。然後對使用者而言,需要對每個子系統進行直接的呼叫。

這樣所產生的乙個問題是,一旦某個子系統進行了介面的修改,那麼使用者對子系統的呼叫都需要修改。

如果使用façade模式,對子系統的呼叫交給facade類,使用者只呼叫facade類的介面,那麼一旦子系統介面修改,那麼只要修改facade類的實現即可,使用者不用進行任何修改。

1.    子系統定義

子系統定義是隨意的,該模式對子系統無要求。

子系統根據自己的功能,自行定義自己的介面即可。

class camera

; void trunoff() {};

void rotate(int degrees) {};

};class light

; void trunoff() {};

};class screen

; void trunoff() {};

};

2.    facade定義

facade類負責統領各個子系統,並提供統一的介面。

其基本要求是,當子系統發生變化時,facade類僅僅內部實現改變,但其提供的介面不變。這樣對於使用者而言,無需修改對facade類的呼叫。

class facade

~facade()

void activate()

void deactivate()

private:

camera *_camera;

light *_lights;

screen *_screen;

};

3.    使用者呼叫

使用者呼叫時,直接對facade類進行呼叫,而不關心子系統的介面與實現。

void main()

外觀模式(Facade)

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

Facade外觀模式

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

Facade外觀模式

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