package com.heima.pattern;
/**
* 装饰设计模式: BufferedReader(readLine())是对FileReader(read())功能的一种增强
* BufferedReader就是装饰类 装饰类和被装饰类一般会归属于同一个类
*/
public class TestDecorator {
public static void main(String[] args) {
Person person = new Person();
// person.eat();
SuperPerson superPerson = new SuperPerson(person);
superPerson.superEat();
}
}
// 被装饰类
class Person {
public void eat() {
System.out.println("吃饭");
}
}
// 装饰类
class SuperPerson {
private Person person = null;
// 通常用构造函数来接受一个被装饰类
public SuperPerson(Person person) {
this.person = person;
}
// 然后基于被装饰类提供更强的功能
public void superEat() {
System.out.println("开胃菜");
person.eat();
System.out.println("甜点");
}
}