当前位置: 代码迷 >> 综合 >> 设计模式:可复用面向对象软件及基础:3-5 结构型模式 外观模式(Facade)
  详细解决方案

设计模式:可复用面向对象软件及基础:3-5 结构型模式 外观模式(Facade)

热度:3   发布时间:2024-02-24 19:19:14.0

外观模式fa?ade

概念

        Facade模式也叫外观模式,是由GoF提出的23种设计模式中的一种。Facade模式为一组具有类似功能的类群,比如类库,子系统等等,提供一个一致的简单的界面。这个一致的简单的界面被称作facade。

角色和职责

 

Fa?ade

    为调用方, 定义简单的调用接口。

Clients

     调用者。通过Facade接口调用提供某功能的内部类群。

Packages

     功能提供者。指提供功能的类群(模块或子系统)

适用于:

为子系统中统一一套接口,让子系统更加容易使用。

#include <iostream>
using namespace std;class SystemA
{
public:void doThing(){cout << "systemA do...." << endl;}
};class SystemB
{
public:void doThing(){cout << "systemA do...." << endl;}
};class SystemC
{
public:void doThing(){cout << "systemA do...." << endl;}
};class Facade
{
public:Facade(){a = new SystemA;b = new SystemB;c = new SystemC;}~Facade(){delete a;delete b;delete c;}void doThing(){a->doThing();b->doThing();c->doThing();}protected:
private:SystemA *a;SystemB *b;SystemC *c;
};void main1414()
{/*SystemA *a = new SystemA;SystemB *b = new SystemB;SystemC *c = new SystemC;a->doThing();b->doThing();c->doThing();delete a;delete b;delete c;*/Facade *f = new Facade;f->doThing();delete f;cout<<"hello..."<<endl;system("pause");return ;
}