您的位置:首页 > 其它

解读设计模式----装饰模式(Decorator Pattern)

2008-04-23 00:54 661 查看
装饰模式(Decorator)也叫包装器模式(Wrapper)。以“装饰”的含义生动形象地描绘了“动态地给一个对象添加一些额外的职责”的意图。GOF在《设计模式》一书中给出的定义为:动态地给一个对象添加一些额外的职责。装饰模式充分利用了继承和聚合的优势,创造出无与论比的设计美学。就增加功能来说,Decorator模式相比生成子类更为灵活。

UML图:

namespace DesignPattern.Decorator

2namespace DesignPattern.Decorator

2namespace DesignPattern.Decorator

2

Pen类的设计:

1namespace DesignPattern.Decorator

2

BoldPen类的设计:

1namespace DesignPattern.Decorator

2namespace DesignPattern.Decorator

2

四、完善Decorator的设计

此部分我就不多说了,代码也已经在上面展示出。示例运行结果:



五、Decorator模式的要点

通过采用组合,而非继承手法,Decorator模式实现了在运行时动态地扩展对象功能的行为,而且可以根据需要扩展多个功能,避免了单独使用继承所带来“灵活性差”和“类爆炸”等问题。把不同的职责封装在不同的职责类的私有方法或属性中,这样对内开放,对外封闭。符合面向对象的“单一职责”和“开放--封闭”原则;同时也很好的符合面向对象设计原则中的“优先使用对象组合而非继承”。

六、本文参考资料

张逸 《软件设计精要与模式》 电子工业出版社

MSDN WebCast 《C#面向对象设计模式纵横谈(10) Decorator装饰模式(结构型模式)》

----------------------------------------------------------------------------------------------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: