2017读书计划

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

2017-05-13  本文已影响26人  漫步_2310

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包类图

上一篇下一篇

猜你喜欢

热点阅读