设计方式学习篇-decorator装饰模式

设计模式学习篇-decorator装饰模式

定义:动态的给你个对象添加一些额外的职责,就增加功能来说:装饰模式比继承生成子类更为灵活。

 

 

特点: 比继承灵活,更容易复用功能,简化高层定义

本质:就是动态组合。

 

抽象构件(Component)角色:给出一个抽象接口,以规范准备接收附加责任的对象和抽象装饰器。
具体构件(ConcreteComponent)角色:定义一个将要接收附加责任的类。
抽象装饰(Decorator)角色:持有一个构件(Component)对象的实例,以用来对它进行装饰,并定义一个与抽象构件接口一致的接口。
具体装饰(Concrete Decorator)角色:负责给构件对象"加上"附加的功能。
装饰模式为对象添加额外责任的方式就像做蛋糕一样,一圈一圈的加上去,中间的面包是核心,是被装饰的对象(发票正文),是核心任务,外围的都是装饰对象,这就是说装饰模式包含两部分内容,即装饰对象和被装饰对象。

 

类图如下