目录
装饰设计模式:典型案例(缓冲区类)
当想要对已有的对象进行功能增强时,可以自定义类,将已有对象传入,基于已有的功能,并提供加强功能。那么自定义的该类称为装饰类。
装饰类通常会通过构造方法接收被装饰的对象,并基于被装饰的对象的功能,提供更强的功能。装饰类构造函数传值,可以找到其参数的共同类型,通过多态的形式,提高扩展性。
示例
class Person{
public void chifan(){
System.out.println("吃饭");
}
}
class SuperPerson{ // 自定义装饰类
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();
// p.chifan(); // 普通调用
SuperPerson sp=new SuperPerson(p