装饰模式:给一个类添加一些额外的职责,并且在添加这些额外的职责时不会控制该类的执行逻辑,也就是说动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比继承更为灵活。
组成部分:
抽象构件:原始的功能接口
具体构件:具体的原始功能类
装饰角色:持有具体构件类的对象,以便执行原有功能
具体装饰:具体扩展的功能在这里
装饰模式的特点;
(1) 装饰对象和真实对象有相同的接口。这样客户端对象就可以以和真实对象相同的方式和装饰对象交互。
(2) 装饰对象包含一个真实对象的索引(reference)
(3) 装饰对象接受所有的来自客户端的请求。它把这些请求转发给真实的对象。
(4) 装饰对象可以在转发这些请求以前或以后增加一些附加功能。这样就确保了在运行时,不用修改给定对象的结构就可以在外部增加附加的功能。在面向对象的设计中,通常是通过继承来实现对给定类的功能扩展。
例如去酒吧喝酒,那么酒就是抽象构件,至于你喝的什么酒(白兰地,威士忌)就是具体构件,装饰角色可以看做是你要往酒里面兑的东西,你往酒里面兑了东西,就相当于你把酒装饰了一番,我就知道和在一起的是什么酒,至于兑什么就是具体装饰了,你可以兑红茶,也可以兑绿茶,因此最后付账的时候你就可以知道是什么酒兑什么茶,一目了然。
类图如下:
源码下载地址:http://download.csdn.net/detail/zshq280017423/4548644
分享到:
相关推荐
HeadFirst设计模式学习笔记比较全面详细地讲解了13个设计模式,有利于大家更好的学习HeadFirst设计模式,希望亲们会喜欢~~~
Head First 设计模式学习笔记。更多内容请参见文章内容。
笔记_HeadFirst设计模式
HeadFirst 设计模式学习笔记3--装饰模式 Demo http://blog.csdn.net/laszloyu/archive/2010/05/12/5582561.aspx
HeadFirst设计模式 读书 笔记
HeadFirst 设计模式学习笔记2--观察者模式 demo http://blog.csdn.net/laszloyu/archive/2010/05/12/5581769.aspx
1.1 《Head First设计模式》阅读笔记.第一章 1.2 《Head First设计模式》阅读笔记.第二章 1.3 《Head First设计模式》阅读笔记.第三章 1.4 《Head First设计模式》阅读笔记.第四章 1.5 《Head First设计模式》...
http://blog.csdn.net/laszloyu/archive/2010/05/11/5579765.aspx 示例代码
HEAD FIRST JAVA全书的学习笔记
head first 工厂模式学习笔记
Head.First 设计模式学习笔记.pdf Head.First 设计模式学习笔记.pdf
Head First Android Development 读书笔记
Head First设计模式读书笔记-DesignPatterns
个人的Head First Servlets & JSP (SCWCD)读书及学习笔记
著名的《Head First Design Pattern》学习笔记,摘要这本书中的设计思路。由于书本过长,整理出笔记帮助回想起设计模式。文件是docx格式,只能由OFFICE Word 2007之后的版本打开,内附Visio类图文件。本文由个人整理...
CSS 学习笔记Head First HTML&CSS 学习笔记 Head First HTML&CSS 学习笔记Head First HTML&CSS 学习笔记 Head First HTML&CSS 学习笔记Head First HTML&CSS 学习笔记 Head First HTML&CSS ...
CSS学习笔记HeadFirst HTML&CSS学习笔记 HeadFirst HTML&CSS学习笔记HeadFirst HTML&CSS学习笔记 HeadFirst HTML&CSS学习笔记HeadFirst HTML&CSS学习笔记 HeadFirst HTML&CSS学习笔记Head...
Head First Servlet & JSP, 经典教程,适用于SCWCD,我就是用这本书98%通过认证。本人注释版,非扫描。
head first策略者模式学习笔记
head_first_servlet&jsp学习笔记