装饰者模式
1. 简介
2. 实例代码
package com.wangjun.designPattern.decorator;
public interface Person {
public void function();
}3. 装饰器模式与代理模式的区别
4. Java IO流实现装饰者模式
Last updated
package com.wangjun.designPattern.decorator;
public interface Person {
public void function();
}Last updated
package com.wangjun.designPattern.decorator;
public class Student implements Person {
@Override
public void function() {
System.out.println("学生具有学习的能力。");
}
}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();
}
}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();
}
}装饰器2新增能力:音乐。
装饰器1增加功能:体育能力。
学生具有学习的能力。