Facade模式

xiaoxiao2021-02-28  90

Facade(外观模式)模式

在开发时,有时已经实现了一些接口,这些接口分布在不同的类或模块中.客户在使用时,需要使用几个接口的组合,但是并不关心这些接口在哪,怎么实现这些接口的.为了便于客户使用,给客户提供一个一致的界面,可以使用Facade模式.此模式定义了一个高层接口,使得子系统更加容易使用.

Facade模式的类结构图如下:

其实现如下:

//Facade.h

//Facade.h #ifndef _FACADE_H_ #define _FACADE_H_ class Subsystem1 { public: void Operation(); }; class Subsystem2 { public: void Operation(); }; class Facade { public: Facade(); ~Facade(); void WrapperOperation(); private: Subsystem1* sub1; Subsystem2* sub2; }; #endif

//Facade.cpp

//Facade.cpp #include "Facade.h" #include<iostream> using std::cout; using std::endl; void Subsystem1::Operation() { cout<<"Subsystem1 Operation"<<endl; } void Subsystem2::Operation() { cout<<"Subsystem2 Operation"<<endl; } Facade::Facade() { sub1=new Subsystem1(); sub2=new Subsystem2(); } Facade::~Facade() {} void Facade::WrapperOperation() { cout<<"Facade Operation"<<endl; sub1->Operation(); sub2->Operation(); }

//main.cpp

//main.cpp #include"Facade.h" int main() { Facade* fa=new Facade(); fa->WrapperOperation(); return 0; }
转载请注明原文地址: https://www.6miu.com/read-37777.html

最新回复(0)