结构型模式5-外观模式

2018-04-16  本文已影响0人  sunblog

结构型模式5-外观模式

外观模式Facade

意图

为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

问题思考

假如某个功能需要多个对象协同一起工作,而这些对象所属的类又比较复杂,该功能只使用到了其中部分接口。倘若其他开发者要使用这个功能,他可以查各个对象的文档最终得到最终的功能。但这样既费时间,又容易出错。

适用性

类图

facade

实现

class Facade {
public:
    Facade(ConcreteClassA *a, ConcreteClassB *b, ConcreteClassC* c) {
        mObjA = a;
        mObjB = b;
        mObjC = c;
    }

    void Operation1() {
        mObjA->Operation1();
    }

    void Operation2() {
        mObjB->Operation2();
    }

    void Operation3() {
        mObjC->Operation3();
    }

private:
    ConcreteClassA *mObjA = nullptr;
    ConcreteClassB *mObjB = nullptr;
    ConcreteClassC *mObjC = nullptr;
};

class ConcreteClassA {
public:
    void Operation1();
};

class ConcreteClassB {
public:
    void Operation2();
};

class ConcreteClassC {
public:
    void Operation3();
};

上一篇 下一篇

猜你喜欢

热点阅读