装饰者模式(Decorator Pattern)
1、 Work.java 接口
2、 Son.java 被装饰者-负责画画
3、 Mother.java 装饰者-负责上颜色
4、 Father.java 装饰者-负责装画框
5、 Test.java 带有main方法的测试类
package zhuangshizheDemo;
public interface Work {
public void work();
}
package zhuangshizheDemo;
public class Son implements Work {
@Override
public void work() {
// TODO 自动生成的方法存根
System.out.println("儿子的工作就是画画......");
}
}
package zhuangshizheDemo;
public class Mather implements Work {
Work worker;
public Mather(Work worker) {
super();
this.worker = worker;
}
@Override
public void work() {
worker.work();
// TODO 自动生成的方法存根
System.out.println("母亲的工作就是在儿子的基础上做一个增强,不单止可以画画,还可以上涂料......");
}
}
package zhuangshizheDemo;
public class Father implements Work {
//需要被增强的类
Work worker;
public Father(Work worker) {
super();
this.worker = worker;
}
@Override
public void work() {
// TODO 自动生成的方法存根
worker.work();
System.out.println("爸爸的工作就是在妈妈基础上做了增强,不单止可以画画,还可以上涂料,还可以上画框 ^_^");
}
}
package zhuangshizheDemo;
public class Test {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Son s=new Son();
s.work();
System.out.println("______________________________________");
Mather m=new Mather(s);
m.work();
System.out.println("______________________________________");
Father f=new Father(m);
f.work();
}
}