装饰器模式就是通过使用其他类包装一个现有的对象来添加新的功能,同时又不改变其结构的一种设计模式。这种模式在提供的接口的基础上创建了一个装饰基类,然后在此基础上设计出了几个装饰实例类,用来包装原有的类,在提供了额外的功能的前提下保持了原有的功能。
简要介绍
装饰器模式在不使用继承的前提下给一个对象添加一些额外的功能,防止因为过度的继承造成程序复杂度的增高及复用性的下降,是一种灵活的模式。其中:
1、继承目的接口的Component 类(装饰基类)充当抽象角色,不应该具体实现。
2、修饰类引用和继承 Component 类来得到具体的实例装饰类,以此对现有的对象进行修饰。
优点:可以扩展一个类的功能,可以动态增加功能,动态撤销。装饰类和被装饰类可以独立发展,不会相互耦合,装饰模式是继承的一个替代模式,装饰模式可以动态扩展一个实现类的功能,可代替继承。
缺点:多层装饰比较复杂,而且需要根据不同功能不断设计新的装饰类,比较耗时。