装饰者模式出现的原因
要对类的功能进行增强,可以新建一个类继承这个类,这种方法可以解决问题,但如果增加的功能越来越多,那继承的层次就越来越深,造成继承冗余的问题
装饰者模式可以不用继承类而增强类的功能,原理是使用对象之间的关联关系取代类之间的继承关系
当然还可以使用代理模式来增强类的功能
装饰者模式中出现的角色1、装饰器和被装饰者的抽象类
2、被装饰者(继承自装饰器和被装饰者的抽象类)
3、装饰器的抽象
4、装饰器的具体实现
下面以对门装锁再装猫眼的例子来具体介绍装饰者模式 类结构图 代码Component
//装饰器和被装饰者的抽象类 public abstract class Component { //共有的抽象方法,也就是待装饰的方法 public abstract void show(); }