装饰着模式

来源:互联网 发布:知错先生 编辑:程序博客网 时间:2024/04/29 15:30

一、装饰者模式的定义

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

UML类图:


Component是定义了一个对象接口,可以给这些对象动态地添加职责,ConcreteComponent是一个具体的对象,也可以给这个对象添加一些职责。Decorator,装饰抽象类,继承了Component,从外类来扩展Component类的功能,但对于Component来说,是无需知道Decorator的存在的。ConcreteDecorator就是具体的装饰对象,祈祷给Component添加职责的功能。

二、装饰者模式的使用场景

1、动态地和透明地添加单个对象的责任,不影响其他对象。

2、当扩展子类不切实际时。为了支持每一个组合,有时需要大量独立扩展,会产生爆炸子类。

3、当系统需要新功能的时候,是向旧的类中添加新的代码。这些新的代码通常装饰了原有类的核心职责或者主要行为。

三、真实世界中装饰者模式

Java IO采用的就是装饰者模式:


Java IO也引出了装饰者模式的一个缺点,利用装饰者,常常造成设计中有大量的小类。

0 0
原创粉丝点击