设计模式之装饰者模式-学习笔记

一、定义

动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。

二、理解

如下图所示,在对象内部创建一个实例变量,用来记录被装起来的实例,然后实现一层一层装饰起来。当需要执行贯穿所有实例的方法是,通过逐级调用内层被装饰实例实现调用:

三、实现

 

四、总结

1、装饰者与被装饰者必须是一样的类型,也就是有共同的超类。上面的demo使用继承实现类型匹配。

2、装饰者与组件组合时,得到的新行为,来源于组合对象。

3、通常装饰类的实现采用的是抽象类,而非接口。

Print Friendly
赞 (8)
分享到:更多 ()

留言板 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址