一、功能
为子系统中的各类提供一个简明一致的界面,隐藏子系统的复杂性,使子系统更加容易使用。
二、优缺点
优点:用户不需要直接与子系统打交道,只需要与Facade交互就可以了,方便了对子系统的使用。
三、示例代码
namespace DesignPattern_Facade { // class Subsystem_ClassA class Subsystem_ClassA { public: void OperationA() {} } ; // class Subsystem_ClassB class Subsystem_ClassB { public: void OperationB() {} } ; // class Subsystem_ClassC class Subsystem_ClassC { public: void OperationC() {} } ; // class Facade class Facade { public: void OperationWrapper() { a.OperationA() ; b.OperationB() ; c.OperationC() ; } private: Subsystem_ClassA a ; Subsystem_ClassB b ; Subsystem_ClassC c ; } ; } 客户端代码: { using namespace DesignPattern_Facade ; Facade facade ; facade.OperationWrapper() ; }从上代码可看出,客户不需要直接调用Subsystem_ClassA等类的函数,而由Facade封装了客户的需求。