装饰设计模式:
当想要对已有的对象进行功能增强时,可以定义类,将已有对象传入,基于已有的功能,并提供加强功能。
那么自定义的该类称为装饰类。
装饰类通常会通过构造方法接受被装饰的对象。并基于被装饰的对象的功能,提供更强得到功能。
装饰设计模式和适配器设计模式有相像之处,来看一个例子
比如一个人,一开始每天只是吃饭,但是突然他又想丰富一下自己的饮食,加上开胃菜和甜点。
装饰设计模式Java示例代码
class Person{
public void chifan() {
System.out.println("吃饭");
}
}
class SuperPerson { //SuperPerson对Person进行装饰
private Person p;
SuperPerson(Person p){
this.p = p;
}
public void superchifan() {
System.out.println("开胃菜");
p.chifan();
System.out.println("甜点");
}
}
class PersonDemo {
public static void main(String[] args) {
Person p = new Person();
SuperPerson sp = new SuperPerson(p);
sp.superchifan();
}
}
这样我们就得到了一个更加丰富的吃饭方法