Decorator模式
What
"Decorator":装饰品
一种与Composite模式一样都具有递归结构的设计模式,但Decorator模式的主要目的是通过添加装饰物来增加对象的功能。
Why
Decorator模式的应用场景是什么?
当需要给一个现有类添加附加职责,而不能采用生成子类的方式进行扩充时。例如:该类被隐藏或者该类是终极类或者采用继承方式会产生大量的子类。
当需要通过对现有的一组基本功能进行排列组合而产生非常多的功能时,采用继承关系很难实现,而采用装饰器模式却很好实现。
当对象的功能要求可以动态添加,也可以再动态地撤销时。
Decorator模式的优点是什么?
装饰类和被装饰类可以独立发展,不会相互耦合,
装饰器是继承的有力补充,比继承更加灵活。
装饰模式可以动态扩展一个实现类的功能。
How
分析对象,确定Component作为增加功能时的核心角色。
实现Component接口,作为具体的装饰对象。
确定Decorator作为装饰物的抽象接口。
实现Decorator接口作为具体的装饰物。