1. 程式人生 > >設計模式C++實現:門面模式

設計模式C++實現:門面模式

門面模式也叫外觀模式。定義如下:
要求一個子系統的外部與其內部的通訊必須通過一個統一的物件進行。門面模式提供一個高層次的介面,使得子系統更易於使用。(Provide a unified interface to a set of interfaces in a subsystem. Facade defines a higer-level interface that makes the subsystem easier to use)
類圖:
這裡寫圖片描述
類圖非常簡單,subsystem可能是一個或多個子系統。每一個子系統都可能是一個或者多個類。但外界訪問子系統的通道是通過Facade類。
示例程式碼:

#include <iostream>
using namespace std;
class SubsystemOne
{
public:
    void dosomething()
    {
        cout<< "One dosomething" <<endl;
    }

};
class SubsystemTwo
{
public:
    void dosomething()
    {
        cout<< "Two dosomething" <<endl;
    }

};
class SubsystemThree
{
public
: void dosomething() { cout<< "Three dosomething" <<endl; } }; class Facade { public: void dosomething() { m_subone.dosomething(); m_subTwo.dosomething(); m_subThree.dosomething(); } private: SubsystemOne m_subone; SubsystemTwo m_subTwo; SubsystemThree m_subThree; }; int
main(void) { Facade *f = new Facade(); f->dosomething(); delete f; return 0; }

執行結果:
這裡寫圖片描述