基于人吃饭的例子设计一个装饰设计模式:

来源:互联网 发布:任小龙java百度云盘 编辑:程序博客网 时间:2024/04/29 11:59

/*
 * 装饰设计模式:
 * 当想要对已有的对象进行功能增强时,可以定义类,将已有对象传入,
 * 基于已有的功能,并提供加强功能。那么自定义的该类型称为装饰类
 * 装饰类通常会通过构造方法接收被装饰对象。
 * 并基于被装饰的对象的功能,提供更强的功能。
 * 装饰模式比继承模式要灵活。避免了继承体系臃肿,而且降低了类与类的关系
 * 装饰类因为增强已有对象,具备的功能和已有的是相同的,只不过提供了更强大的功能
 * 所以装饰类和被装饰类通常是都属于同一个体系中的。
 * 找到其参数的共同类型,通过多态的形式,可以提高扩展性。
 */
public class PersonDemo {


public static void main(String[] args) {
Person.eat();
SuperPerson.superEat();
}


}
//当人吃的比较好的时候是不是要增强吃饭的方法
class SuperPerson{
private static Person p;


public SuperPerson(Person p) {
super();
this.p = p;
}
public static void  superEat() {
System.out.println("开胃酒");
p.eat();
System.out.println("甜点");
System.out.println("咖啡");
}
}
//定义一个人吃饭的功能
class Person{
public static  void  eat() {
System.out.println("吃饭");
}
}
0 0
原创粉丝点击