您的位置:首页 > 其它

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

2016-03-12 09:15 288 查看
/*

 * 装饰设计模式:

 * 当想要对已有的对象进行功能增强时,可以定义类,将已有对象传入,

 * 基于已有的功能,并提供加强功能。那么自定义的该类型称为装饰类

 * 装饰类通常会通过构造方法接收被装饰对象。

 * 并基于被装饰的对象的功能,提供更强的功能。

 * 装饰模式比继承模式要灵活。避免了继承体系臃肿,而且降低了类与类的关系

 * 装饰类因为增强已有对象,具备的功能和已有的是相同的,只不过提供了更强大的功能

 * 所以装饰类和被装饰类通常是都属于同一个体系中的。

 * 找到其参数的共同类型,通过多态的形式,可以提高扩展性。

 */

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("吃饭");
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: