装饰类

/*
  装饰设计模式:
  当想要对已有的对象进行功能增强时,可以定义类,将已有的对象传入,
  基于已有的功能,并提供加强功能。
  那么自定义的该类称为装饰类
装饰模式 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();
 }
}

猜你喜欢

转载自blog.csdn.net/qq_37042434/article/details/80149572