外观模式
外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。
#ifndef _FACADE_H_
#define _FACADE_H_
#include<iostream>
//子系统1
class subSystemOne
{
public:
void subMethoredOne()
{
std::cout<< "subsystem one" << std::endl;
}
};
//子系统2
class subSystemTwo
{
public:
void subMethoredTwo()
{
std::cout<< "subsystem two" << std::endl;
}
};
//子系统3
class subSystemThree
{
public:
void subMethoredThree()
{
std::cout<< "subsystem three" << std::endl;
}
};
//外观,对外提供简单的接口
class facade
{
public:
facade()
{
sub1 = new subSystemOne();
sub2 = new subSystemTwo();
sub3 = new subSystemThree();
}
//组合子系统,对外提供的功能A
void methoredA()
{
sub1->subMethoredOne();
sub2->subMethoredTwo();
}
//组合子系统,对外提供的功能B
void methoredB()
{
sub1->subMethoredOne();
sub3->subMethoredThree();
}
private:
subSystemOne * sub1;
subSystemTwo * sub2;
subSystemThree * sub3;
};
#endif
int main()
{
facade * face = new facade();
face->methoredA();
face->methoredB();
return 0;
}