《设计模式Design Pattern》读书笔记之九
Decorator模式
结构
目的
动态地给一个对象增加功能(responsibilities)。
讨论
1, 给一个对象增加功能,最简单的方法是派生一个类;但这是一种静态的方法,不灵活。
而Decorator是一种动态的方法,比较灵活。
2, 对于一个轻量型的component,Decorator模式是一种比较好的方法,但如果component是重量型的,Decorator会花费太大。对于重量型的,可以采取Strategy模式。
Decorator象是给component披上一层外衣,component不需要知道是什么东西披在了它身上。而Strategy是改变component内部,在内部维护一个个需要新增得功能对象。
3,Decorator可以看作是一种特殊的Composite,是只有一个component的composite;但Decorator的目的是为了增加额外的功能,而Composite的目的是对象的集成。
参考资料
《Design Pattern》 Gang-Of-4 1997