设计模式C++实现——外观模式
来源:互联网 发布:矩阵相乘值的性质 编辑:程序博客网 时间:2024/05/19 13:14
模式定义:
外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。
模式结构:
举例:
构造一个家庭影院,当启动watchMovie方法时可以看电影,当使用endMovie时关闭电影。
编程实现及执行结果:
#include <iostream>using namespace std;//组件类class Amplifier{public:void on(){cout << "Amplifier on" << endl;}void off(){cout << "Amplifier off" << endl;}};class Tuner{public:void on(){cout << "Tuner on" << endl;}void off(){cout << "Tuner off" << endl;}};class DvdPlayer{public:void on(){cout << "DvdPlayer on" << endl;}void off(){cout << "DvdPlayer off" << endl;}};class Screen{public:void on(){cout << "Screen on" << endl;}void off(){cout << "Screen off" << endl;}};//家庭影院class HomeTheaterFacade{public://统一接口void watchMovie(){amp.on();tuner.on();dvd.on();screen.on();}void endMovie(){amp.off();tuner.off();dvd.off();screen.off();}HomeTheaterFacade(Amplifier am,Tuner tune,DvdPlayer dv,Screen scree){amp = am;tuner = tune;dvd = dv;screen = scree;}//~HomeTheaterFacade(){}private:Amplifier amp;Tuner tuner;DvdPlayer dvd;Screen screen;};//客户代码int main(){Amplifier amp;Tuner tuner;DvdPlayer dvd;Screen screen;HomeTheaterFacade homeTheaterFacade(amp,tuner,dvd,screen);;homeTheaterFacade.watchMovie();homeTheaterFacade.endMovie();return 0;}
执行结果:
Amplifieron
Tuneron
DvdPlayeron
Screenon
Amplifieroff
Tuneroff
DvdPlayeroff
Screenoff
请按任意键继续. . .
设计原则:
最少知识原则:只和你的密友谈话
0 0
- 设计模式—外观模式
- 设计模式—外观模式
- 设计模式—外观模式
- 设计模式C++实现 —— 外观模式、组合模式
- 设计模式——外观模式(C++)
- 设计模式C++实现——外观模式
- java语言实现结构型设计模式—外观模式
- 每日设计模式——外观模式
- 浅谈设计模式——外观模式
- 设计模式——外观模式(Facade)
- 设计模式——外观模式
- JAVA设计模式——外观模式
- java设计模式——外观模式
- 设计模式——外观模式
- 结构性设计模式——外观模式
- 设计模式——外观模式
- 设计模式——外观模式
- 设计模式(4)——外观模式
- ubuntu 未知显示器 unkown display 问题解决
- MFC数据的传递
- GitHub Android 开源项目汇总
- memcached搭建缓存系统
- Linux关于find操作
- 设计模式C++实现——外观模式
- 第2次实验——算法基本功 与 综合思考
- setjmp&longjmp
- zookeeper的理解---初级第一篇
- ImageView.ScaleType设置图解
- 第1次实验——NPC问题(回溯算法、聚类分析)
- 用jQuery AJAX调用WCF服务
- hdu1529 差分约束(好题)
- 入门DP专练