設計模式之外觀模式例項(c )

2021-09-22 16:42:16 字數 1413 閱讀 6549

外觀模式為子系統中的一組介面提供乙個統一的入口。其定義了乙個高層的介面,這個介面使得這一子系統更加容易使用。

在外觀模式中,外部與乙個或者多個子系統的通訊,可以通過乙個統一的外觀物件來進行。

從類圖我們可以看出,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 是智慧型的,它有乙個 總控中心 用來使用各個部件的功能,以及 其它功能的使用。總控中心 也是使用者在穿戴時...