/*
装饰设计模式:
当想要对已有的对象进行功能增强时,可以定义类,将已有的对象传入,
基于已有的功能,并提供加强功能。
那么自定义的该类称为装饰类
装饰设计模式:
当想要对已有的对象进行功能增强时,可以定义类,将已有的对象传入,
基于已有的功能,并提供加强功能。
那么自定义的该类称为装饰类
装饰模式 Decorator
装饰模式动态地给一个对象添加一些额外的职责,就增加功能来说,它比生成子类更灵活。也可以这样说,装饰模式把复杂类中的核心职责和装饰功能区分开了,这样既简化了复杂类,有去除了相关类中重复的装饰逻辑。 装饰模式没有通过继承原有类来扩展功能,但却达到了一样的目的,而且比继承更加灵活,所以可以说装饰模式是继承关系的一种替代方案。
*/
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();
}
}
public class SuperPersonDemo
{
public static void main(String[] args)
{
Person p=new Person();
SuperPerson sp=new SuperPerson(p);
sp.Superchifan();
}
}