设计模式之装饰模式
定义
装饰模式(Decorator Pattern):动态地给一个对象增加一些额外的职责,就增加对象功能来说,装饰模式比生成子类实现更为灵活。装饰模式是一种对象结构型模式。
了解
根据“合成复用原则”,在实现功能复用时,我们要多用关联,少用继承, 我们可以将要增强的方法抽取出来,封装在一个独立的类中,在这个类中定义(关联)一个Component类型的对象,通过调用Component的base()方法来实现对象最基本的功能,同时再通过addBehavior()方法对基本构件的功能进行增强;
根据“里氏代换原则”,程序运行过程中,我们只要向这个独立的类(装饰器或装饰类)中注入具体的Component子类的对象即可实现功能的扩展。
装饰模式可以在不改变一个对象本身功能的基础上给对象增加额外的新行为,是一种用于替代继承的技术,它通过一种无须定义子类的方式来给对象动态增加职责,使用对象之间的关联关系取代类之间的继承关系。在装饰模式中引入了装饰类,在装饰类中既可以调用待装饰的原有类的方法,还可以增加新的方法,以扩充原有类的功能。