结构型模式-Façade
来源:互联网 发布:淘宝 运营 课程 编辑:程序博客网 时间:2024/05/17 04:28
//子系统发生的变化,很可 能要影响到客户类的调用。而且子系统在不断优化、可重用化的重构路上,会产生更多更小
//的类。这对使用子系统的客户类来说要完成一个工作流程,似乎要记住的接口太多了。
// 门面模式就是为了解决这种问题而产生的
//使用环境和优点
// 《设计模式》给出了门面模式的使用环境:
//1) 当你要为一个复杂子系统提供一个简单接口时。在上面已经描述了原因。
//2) 客户程序与抽象类的实现部分之间存在着很大的依赖性。引入facade 将这个子系统与
// 客户以及其他的子系统分离,可以提高子系统的独立性和可移植性(上面也提到了)。
//3) 当你需要构建一个层次结构的子系统时,使用facade 模式定义子系统中每层的入口点。
// 如果子系统之间是相互依赖的,你可以让它们仅通过facade 进行通讯,从而简化了它
// 们之间的依赖关系。
// 门面模式(facade )又称外观模式。GOF在《设计模式》一书中给出如下定义:为子系
//统中的一组接口提供一个一致的界面, Facade模式定义了一个高层接口,这个接口使得这
//一子系统更加容易使用。
#include <stdio.h>
class Subsystem1
{
public:
Subsystem1();
~Subsystem1();
void Operation()
{
printf("Subsystem1 operation..");
}
protected:
private:
};
class Subsystem2
{
public:
Subsystem2();
~Subsystem2();
void Operation()
{
printf("Subsystem2 operation..");
}
protected:
private:
};
class Facade
{
public:
Facade()
{
this->_subs1 = new Subsystem1();
this->_subs2 = new Subsystem2();
}
~Facade()
{
delete _subs1;
delete _subs2;
}
void OperationWrapper()//两个接口整合到一块 提供给用户
{
this->_subs1->Operation();
this->_subs2->Operation();
}
protected:
private:
Subsystem1* _subs1;
Subsystem2* _subs2;
};
void Facade_test(int argc,char* argv[])
{
Facade* f = new Facade();
f->OperationWrapper();
return;
}
- 结构型模式-Façade
- Façade外观(结构型模式)
- 门脸模式Façade
- 结构型模5:外观模式(Façade Pattern)
- Façade模式--门面模式
- (第Ⅲ部分 结构型模式篇) 第11章 外观模式(Façade Pattern)
- (第Ⅲ部分 结构型模式篇) 第11章 外观模式(Façade Pattern)
- (第Ⅲ部分 结构型模式篇) 第11章 外观模式(Façade Pattern)
- 外观模式(Façade Pattern)
- 外观模式(Façade Pattern)
- 外观模式(Façade Pattern)
- 外观模式(Façade Pattern)
- 笔记:Gof设计模式--Façade
- 外观模式(Façade Pattern)
- Façade(外观模式)
- Façade Pattern
- .NET设计模式-外观模式(Façade Pattern)
- c++设计模式(21)-Façade模式
- (字符串的处理方式4.7.15)POJ 1080 Human Gene Functions(两个字符串的最佳匹配)
- FreeRTOS之taskYIELD()
- table div 滚动条
- android :在activity启动后立即弹出PopupWindow的三个方法
- hadoop SNN故障解决
- 结构型模式-Façade
- javascript加减乘除精度
- Decorator
- JDBC连接数据库的步骤
- achartengine画出动态折线图
- 字节未对齐引起的段错误
- 网络营销不是收费删帖:为网络营销正本清源
- Decorator
- 我到底喜欢什么?