外觀模式為子系統中的一組介面提供乙個統一的入口。其定義了乙個高層的介面,這個介面使得這一子系統更加容易使用。
在外觀模式中,外部與乙個或者多個子系統的通訊,可以通過乙個統一的外觀物件來進行。
從類圖我們可以看出,gsf類裡面關聯了lights、fan、ac、tv,並通過on()、off()來實現對他們的統一管理(進行開啟和關閉)。
子系統類light:
//子系統類light
class light
void on()
void off()
private:
string position;
};
子系統類fan:
//子系統類fan
class fan
void off()
};
子系統類airconditioner:
//子系統類airconditioner
class airconditioner
void off()
};
子系統類television:
//子系統類television
class television
void off()
};
外觀類generalswitchfacade:
//外觀類generalswitchfacade
class generalswitchfacade
void on()
fan->on();
ac->on();
tv->on(); }
void off()
fan->off();
ac->off();
tv->off(); }
private:
vector> lights;
shared_pt***n;
shared_ptrac;
shared_ptrtv;
};
客戶端測試 :
//客戶端測試
int main(void)
輸出結果:
(end)
c 設計模式之外觀模式
外觀模式 facade pattern 結構型模式 這個外觀類為子系統提供乙個共同的對外介面,客戶 clients 物件通過乙個外觀介面讀寫子系統中各界面的資料資源。意圖 外觀模式 facade 為子系統中的一組介面提供乙個一致的介面,定義乙個高層介面,這個介面使得這一子系統更加容易使用。適用性 1...
C 設計模式之外觀模式
外觀模式提供了乙個統一的介面,用來訪問子系統中的一群介面。外觀定義了乙個高層介面,讓子系統更容易使用。使用外觀模式時,我們建立了乙個統一的類,用來包裝子系統中乙個或多個複雜的類,客戶端可以直接通過外觀類來呼叫內部子系統中方法,從而外觀模式讓客戶和子系統之間避免了緊耦合。下面是 以學生選課系統為例子演...
C 設計模式之外觀
ironman之外觀 接著上篇觀察者內容的 劇情 沒看過的朋友也沒關係,篇幅之間有銜接的關係但是影響不大。需求 為 兵工廠 提供各種支援,生產了各式各樣的 ironman 因為 ironman 是智慧型的,它有乙個 總控中心 用來使用各個部件的功能,以及 其它功能的使用。總控中心 也是使用者在穿戴時...