java的i/o中用到了就是装饰模式
代码:
抽象构件
package com.test.drector;
public interface Person {
public void run();
}
具体构建
package com.test.drector;
public class Man implements Person{
public void run() {
System.out.println("跑步");
}
}
装饰角色
package com.test.drector;
public class DrectorFather implements Person {
private Person person;
public DrectorFather(Person person){
this.person = person;
}
public void run() {
person.run();//被装饰类的方法
}
}
具体装饰
package com.test.drector;
public class DrectorSon extends DrectorFather{
public DrectorSon(Person person) {
super(person);
}
public void run(){
this.addRun();
super.run();
}
public void addRun(){
System.out.println("晚上");
}
}
测试代码
package com.test.drector;
public class DrectorSon extends DrectorFather{
public DrectorSon(Person person) {
super(person);
}
public void run(){
this.addRun();
super.run();
}
public void addRun(){
System.out.println("晚上");
}
}
运行结果
晚上
跑步