介绍
定义
装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。
设计原则
多组合,少继承。...首先,将咖啡,茶等饮料定义为被装饰者,奶,糖,椰果,珍珠等定义为装饰者,当用户下单时,用户购买了一个”被装饰者”以及若干个“装饰者”,我们只需要将奶,糖,椰果,珍珠等东西装饰在被用户购买的这个被装饰者上即可...定义基类
在装饰者模式中,被装饰者和装饰者继承自同一个基类,我们定义为Component,每个Component有自己的名字以及价钱.
public class Component {
private...而使用装饰者模式,可以很轻松的处理各种附加要求.
特点
通过上面的例子,我们可以总结一下装饰者模式的特点。 (1)装饰者和被装饰者有相同的接口(或有相同的父类)。...优缺点
优点
扩展性好
符合开闭原则
缺点
会有许多的装饰类,导致程序复杂性提高
装饰者模式在JDK中的应用
在书中介绍完”星巴慈咖啡”的例子后,提到了在java.io包中大量使用了装饰者模式,这里对io