java装饰模式例子源码。
package wzq.j2se.zhuangshi;
public interface Worker {
public void doWork();
}
package wzq.j2se.zhuangshi;
public class ShuiguanWorker implements Worker{
@Override
public void doWork() {
System.out.println(“修水管!”);
}
}
package wzq.j2se.zhuangshi;
public class MujiangWorker implements Worker{
@Override
public void doWork() {
System.out.println(“修门窗”);
}
}
package wzq.j2se.zhuangshi;
public class ACompany implements Worker{
private Worker worker;
public ACompany(Worker worker){
this.worker = worker;
}
public void doWork(){
System.out.println(“我是A公司的工人”);
worker.doWork();
}
}
package wzq.j2se.zhuangshi;
public class Test {
public static void main(String[] args) {
ShuiguanWorker sg = new ShuiguanWorker();
ACompany a1 = new ACompany(sg);
a1.doWork();
MujiangWorker mj = new MujiangWorker();
Worker a2 = new ACompany(mj);
a2.doWork();
}
}