编程语言
首页 > 编程语言> > C++ 外观模式

C++ 外观模式

作者:互联网

  外观模式又称为Facade,为子系统中的一组接口(相当与上面的模块)提供一个一致的界面。此模式定义了一个高层接口,这个结口使得这一子系统更加easy使用。

  我们仅仅需调用高层的函数接口。而不用关心高层内部调用是怎样组合底层方法的。更不用关心底层函数是怎样实现的。

  例如,我们须要完成两个工作,要完毕工作1我们须要依次完成子工作Sub_Work1、Sub_Work3;要完成工作2我们须要依次完成子工作Sub_Work2,Sub_Work3,Sub_Work4。为了能让用户与这些子工作分离,我们採用外观模式在中间插入一个工作处理中心Work,这个Work类负责处理用户的需求。

  代码实现例如以下:

/*
 * 设计模式之外观模式
 * */

#includeusing namespace std;


class Sub_Work1 //子工作1
{
public:
    void Working1()
    {
        cout << "Doing Sub-Work1..." << endl;
    }
};

class Sub_Work2//子工作2
{
public:
    void Working2()
    {
        cout << "Doing Sub-Work2..." << endl;
    }
};

class Sub_Work3//子工作3
{
public:
    void Working3()
    {
        cout << "Doing Sub-Work3..." << endl;
    }
};

class Sub_Work4//子工作4
{
public:
    void Working4()
    {
        cout << "Doing Sub-Work4..." << endl;
    }
};

class Work  //总工作,客户与之打交道
{
private:
    Sub_Work1 w1;
    Sub_Work2 w2;
    Sub_Work3 w3;
    Sub_Work4 w4;
public:
    void Work1() //总工作1
    {
        w1.Working1();
        w3.Working3();
    }

    void Work2() //总工作2
    {
        w2.Working2();
        w3.Working3();
        w4.Working4();
    }
};

int main()
{
    Work w;

    cout << "总工作1" << endl;
    w.Work1();

    cout << endl << "总工作2" << endl;
    w.Work2();

    return 0;
}

               

标签:外观,Sub,接口,模式,工作,须要,C++
来源: https://blog.51cto.com/u_12570763/2845400