美文网首页2017读书计划
1.3:装饰对象:装饰者模式

1.3:装饰对象:装饰者模式

作者: 漫步_2310 | 来源:发表于2017-05-13 16:48 被阅读26次

1:开放-关闭原则

2:装饰者模式,一个完美实现“开放-封闭原则”的设计模式。

记住这么一句话:装饰者类反应出被装饰的组件类型。(事实上,他们具有相同的类型,都经过接口或继承实现)

3:认识装饰者模式

4:比较典型的例子“星巴克饮料”

重点理解下面几句话:

(1)装饰者和被装饰者拥有共同的类型(可以通过继承实现,也可以通过接口实现),这样装饰者才能够拥有替代被装饰者的能力。

(2)被装饰者的行为,来自于装饰者和基础组件,或者与其他装饰者之间的组合关系。

(3)通常装饰者模式是采用抽象类的,但是在Java中可以使用接口。所以具体写代码时,可以自己考虑。

(4)看到下面的星巴克咖啡图了吗?想想怎么写代码?

(5)咖啡种类:Beverage(饮料)

综合:HouseBlend

深焙:DarkRoast

低咖啡因:Decaf

浓缩:Espresso

(6)配料种类:Condiment Decorator(调味品装饰)

牛奶:Milk

摩卡:Mocha

豆浆:Soy

奶泡:Whip

(7)星巴克咖啡类图

5:真实世界的装饰者,java中I/O

上图中可以看到:FilterInputStream是所有InputStream的抽象装饰者,InputStream是被装饰者的公共抽象组件。

(1)InputStream

(2)FilterInputStream

(3)jdk中IO包类图

相关文章

  • 1.3:装饰对象:装饰者模式

    1:开放-关闭原则 2:装饰者模式,一个完美实现“开放-封闭原则”的设计模式。 记住这么一句话:装饰者类反应出被装...

  • 装饰者模式(3)-工作原理

    装饰者模式定义 装饰者模式: 动态的将新功能附加到对象上。在对象功能扩展方面,它比继承更有弹性,装饰者模式也体现了...

  • 设计模式之装饰者模式(Decorator Pattern)

    What: 装饰者模式又名包装(Wrapper)模式。装饰者模式动态地将责任附加到对象身上。若要扩展功能,装饰者提...

  • java - 装饰者模式

    装饰者模式 装饰者模式:动态将责任添加到对象上。如果需要扩展功能,装饰者提供了比继承更有弹性的解决方案。装饰者模式...

  • 设计模式-装饰者模式

    装饰者模式概念: 装饰者模式又名包装(Wrapper)模式。装饰者模式以对客户端透明的方式扩展对象的功能,是继承关...

  • 装饰对象:装饰者模式

    装饰对象:装饰者模式   这是《Head First设计模式(中文版)》第三章的读书笔记。   装饰者模式,可以称...

  • PHP的设计模式-装饰者模式

    装饰者模式 装饰者模式 装饰者模式类似蛋糕,有草莓味、奶酪等种类,但是它们的核心都是蛋糕。 不断地将对象添加装饰的...

  • 装饰者模式

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

  • JavaScript 设计模式(中)——12. 装饰者模式

    12 装饰者模式 装饰者模式定义为给对象动态地增加职责的方式;装饰者模式能够在不改变对象自身的基础上,在程序运行期...

  • 设计模式之装饰者模式

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

网友评论

    本文标题:1.3:装饰对象:装饰者模式

    本文链接:https://www.haomeiwen.com/subject/nrgxxxtx.html