装饰模式
来源:互联网 发布:厦门三套网络电视台 编辑:程序博客网 时间:2024/06/04 04:39
1、概念:也叫做包装模式,通过一种对客户端透明的方式来扩展对象的功能,是继承关系的一个替换方案。
装饰模式就是把要添加的附加功能分别放在单独的类中,并让这个类包含他要装饰的对象,当需要执行时,客户端就可以有选择地、按顺序地使用装饰功能包装对象。
2、试用范围:
装饰模式动态的给一个对象添加一些额外的职责。就增加功能来说。此模式比生成子类更灵活。
3、代码示例:
#include<iostream>using namespace std;class Car{public:virtual void show() = 0;};class RunCar:public Car{public:virtual void show(){cout << "可以跑" << endl;}};class SwimCar:public Car{public:SwimCar(Car* car){m_car = car;}void swim(){cout << "可以游泳" << endl;}virtual void show(){m_car->show();swim();}private:Car* m_car;};class FlyCar :public Car{public:FlyCar(Car*car){m_car = car;}void Fly(){cout << "可以飞" << endl;}virtual void show(){m_car->show();Fly();}private:Car *m_car;};int main(void){Car *car = NULL;car = new RunCar;car->show();cout<< endl;SwimCar *sw = new SwimCar(car);sw->show();cout << endl;FlyCar *fc = new FlyCar(sw);fc->show();delete sw;delete fc;return 0;}
阅读全文
1 0
- 装饰模式-撤销装饰
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 装饰模式
- 继承控件
- Who's Aunt Zhang HDU
- 主机通过sftp传输文件到某台服务器ubuntu虚拟机出现:open for write: permission denied
- Retrofit+Rxjava简单的网络请求
- 机器学习-python通过序列最小优化算法(SMO)方法编写支持向量机(SVM)
- 装饰模式
- word embedding
- Java学习心得
- html5动画
- Android开发艺术探索第一章笔记
- SGM(semi-global matching)算法原理
- VS2010控制台程序运行一闪而过的完美解决办法
- MVP
- css的动画