您的位置:首页 > 其它

Decorator Pattern

2015-07-20 15:22 232 查看
1.Decorator 模式通过组合的方式提供了一种给类增加职责(操作)的方法。

2.Decorator模式结构图

//main.cpp
#include "Decorator.h"
#include <iostream>
using namespace std;

int main(int argc,char* argv[])
{
Component* com = new ConcreteComponent();
Decorator* dec = new ConcreteDecorator(com);
dec->Operation();
delete dec;
return 0;
}


main.cpp
4.Decorator模式的讨论

  为了多态,通过父类指针指向其具体子类,但是这就带来另外一个问题,当具体子类要添加新的职责,就必须向其父类添加一个这个职责的抽象接口,否则是通过父类指针是调用不到这个方法了。这样处于高层的父类就承载了太多的特征(方法),并且继承自这个父类的所有子类都不可避免继承了父类的这些接口,但是可能这并不是这个具体子类所需要的。而在Decorator模式提供了一种较好的解决方法,当需要添加一个操作的时候就可以通过Decorator模式来解决,你可以一步步添加新的职责。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: