package com.wangjun.designPattern.decorator;
public interface Person {
public void function();
}
Student类
package com.wangjun.designPattern.decorator;
public class Student implements Person {
@Override
public void function() {
System.out.println("学生具有学习的能力。");
}
}
装饰器1
package com.wangjun.designPattern.decorator;
public class Decorator1 implements Person {
private Person person;
public Decorator1(Person person) {
this.person = person;
}
@Override
public void function() {
System.out.println("装饰器1增加功能:体育能力。");
person.function();
}
}
装饰器2
package com.wangjun.designPattern.decorator;
public class Decorator2 implements Person {
private Person person;
public Decorator2(Person person) {
this.person = person;
}
@Override
public void function() {
System.out.println("装饰器2增加能力:音乐。");
person.function();
}
}
测试类
package com.wangjun.designPattern.decorator;
public class App {
public static void main(String[] args) {
//原始对象
Person person = new Student();
//装饰类对象
Person decorator = new Decorator2(new Decorator1(person));
decorator.function();
}
}