外觀模式(façade pattern)
基本概念:
外觀模式的主用工作室遮蔽實際的例項化操作,利用乙個介面類(暫且稱為介面類,是直接針對客戶的類,不是真正的ui類)來生成乙個個需要的物件。外觀模式非常像工廠模式,不同點是外觀模式的介面類中已經明確了要建立的例項物件。
什麼時候用到外觀模式:
對於使用者來說,只需通過某個介面獲得例項物件,而並不需要知道某個類的具體建立的過程。如乙個系統(system)有很多子系統(subsystem),我們使用的時候只需要知道系統如何使用和執行,而不需要知道子系統是如何建立和執行的。
舉個栗子:
舉個開汽車的例子(很多時候都是拿汽車說事,沒辦法,對汽車太感興趣了,還做了幾年的汽車電子方面的開發)。我們開汽車的時候,只需要擰一下鑰匙(或者按一下start,越來越多的一鍵啟動),此時汽車的一次啟動電動機,通過電動機帶動內燃機啟動,會啟動汽車的大燈系統,會啟動中控儀表燈,顯示當前引數,會啟動一些輔助性自檢功能,檢測有沒有關好門,有沒有系安全帶等。當然還有很多更高階的功能。
上**:
//汽車各子系統
//h#pragma once
#include
#include
#include
using namespace std;
class subsystem ;
class motor: public subsystem
~motor(){}
void start(); };
class internalcombustionengine: public subsystem
~internalcombustionengine(){}
void start(); };
class selfcheck: public subsystem
~selfcheck(){}
void start(); };
class lights: public subsystem
~lights(){}
void start(); };
//cpp
#include "subsystem.h"
subsystem::subsystem(void)
subsystem::~subsystem(void)
void motor::start()
void internalcombustionengine::start()
void selfcheck::start()
void lights::start()
//汽車系統
//h
#pragma once
#include "subsystem.h"
class carsystem ;
//cpp
#include "carsystem.h"
carsystem::carsystem(void)
carsystem::~carsystem(void)
void carsystem::start()
//測試
#include "carsystem.h"
int main()
設計模式 外觀模式
外觀模式,我的理解就是將複雜的類進行重新封裝,將簡單的介面呈現出來,降低呼叫端和實際類的耦合性。拿 大話設計模式 上邊關於 和 的例子來說。對於不入門的股民來說,交易有些過於龐大,需要學習的東西很多,如果沒整明白就進行投資,很容易賠錢的。很多剛入 的股民都賠的很慘。而買 有提出了乙個新的觀念,我們買...
設計模式 外觀模式
何為外觀模式?外觀模式 為子系統中的一組介面提供乙個一致的介面,此模式定義了乙個高層介面,這個介面使得一子系統更加容易使用。它是一種結構型模式,它主要解決的問題是 元件的客戶和元件中各種複雜的子系統有了過多的耦合,隨著外部客戶程式和 各子系統的演化,這種過多的耦合面臨很多變化的挑戰。uml類圖 乙個...
設計模式 外觀模式
外觀模式說白了就是為一組介面提供乙個一致的介面。例如 定義三個類a b c,每個類各定義乙個方法。class a pubic void showa cout a showa pubic void showb cout b showb pubic void showc cout c showc 定義乙...