结构型模式之外观模式(Facade)
2017-05-08 11:01
253 查看
1. 意图
为子系统中的一组接口提供一个一致的界面, F a c a d e模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
2. 动机
将一个系统划分成为若干个子系统有利于降低系统的复杂性。一个常见的设计目标是使子系统间的通信和相互依赖关系达到最小。达到该目标的途径之一是就是引入一个外观(f a c a d e)对象,它为子系统中较一般的设施提供了一个单一而简单的界面。
模式结构:
3.举例
为子系统中的一组接口提供一个一致的界面, F a c a d e模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
2. 动机
将一个系统划分成为若干个子系统有利于降低系统的复杂性。一个常见的设计目标是使子系统间的通信和相互依赖关系达到最小。达到该目标的途径之一是就是引入一个外观(f a c a d e)对象,它为子系统中较一般的设施提供了一个单一而简单的界面。
模式结构:
3.举例
#ifndef FACADE_H #define FACADE_H #include <iostream> using std::cout; using std::endl; class CLight{ public: void On(){ cout<<"Turn the light on!"<<endl; } void Off(){ cout<<"Turn the light off!"<<endl; } }; class CTelevision{ public: void On(){ cout<<"Turn the television on!"<<endl; } void Off(){ cout<<"Turn the television off!"<<endl; } }; class CAirCondition{ public: void On(){ cout<<"Turn the aircondition on!"<<endl; } void Off(){ cout<<"Turn the aircondition off!"<<endl; } }; class CFan{ public: void On(){ cout<<"Turn the fan on!"<<endl; } void Off(){ cout<<"Turn the fan off!"<<endl; } }; class CSwitch{ private: CLight* pLight; CTelevision* pTelevision; CAirCondition* pAirCondition; CFan* pFan; public: CSwitch(){ pLight=new CLight; pTelevision=new CTelevision; pAirCondition=new CAirCondition; pFan=new CFan; } void On(){ pLight->On(); pTelevision->On(); pAirCondition->On(); pFan->On(); } void Off(){ pLight->Off(); pTelevision->Off(); pAirCondition->Off(); pFan->Off(); } }; #endif #include <iostream> #include "facade.h" int main(){ CSwitch example; cout<<"Turn the switch on:"<<endl; example.On(); cout<<"Turn the switch off:"<<endl; example.Off(); return 0; }
相关文章推荐
- C#面向对象设计模式纵横谈 学习笔记11 Facade外观(结构型模式)
- 包装外观(Wrapper Facade):用于在类中封装函数的结构型模式
- 设计模式(10)-结构型-外观模式(Facade)
- 面向对象设计模式之Facade外观模式(结构型)
- 结构型模式(Structural patterns)->外观模式(Facade Pattern)
- [导入]C#面向对象设计模式纵横谈(11):Facade 外观模式(结构型模式).zip(7.52 MB)
- 设计模式(九)外观模式Facade(结构型)
- 设计模式之外观(Facade)---对象结构型模式
- 外观模式Facade--结构型模式之四
- 设计模式(九)外观模式Facade(结构型)
- 包装外观(Wrapper Facade):用于在类中封装函数的结构型模式
- C#面向对象设计模式纵横谈 笔记11 Facade外观(结构型模式)
- 设计模式(九)外观模式Facade(结构型)
- 结构型模式:Facade(外观)
- Facade 外观模式(结构型模式)
- Facade外观(结构型模式)
- (结构型模式)Facade——外观模式
- 第2章 包装外观(Wrapper Facade):用于在类中封装函数的结构型模式
- 结构型模式-----外观模式(Facade)
- 设计模式十一:facade(外观)——对象结构型模式