Facade模式

来源:互联网 发布:linux进入单用户模式 编辑:程序博客网 时间:2024/05/17 20:00

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;}
0 0