class Carpenter implements Worker{
public void doSomeWork(){
System.out.println("修窗户");
}
}
class Plumber implements Worker{
public void doSomeWork(){
System.out.println("修水管");
}
}
class AWorker implements Worker{
private Worker worker; //作用: 将外部的worker接收并存储下来
public AWorker(){
}
public AWorker(Worker worker){ //通过构造函数将worker参数传递进来
this.worker = worker ;
}
public void doSomeWork(){
System.out.println("我来自A公司"); //有点像复合函数
this.worker.doSomeWork();
}
}
class BWorker implements Worker{
private Worker worker;
public BWorker(){
}
public BWorker(Worker worker){
this.worker = worker;
}
public void doSomeWork(){
System.out.println("我来自B公司");
this.worker.doSomeWork();
}
}
public class Test{
public static void main(String args []){
Plumber p = new Plumber();
Carpenter c = new Carpenter();
AWorker p_A = new AWorker(p);
BWorker c_B = new BWorker(c);
p_A.doSomeWork();
c_B.doSomeWork();
Plumber pp = new Plumber();
Carpenter cc = new Carpenter();
AWorker pp_A = new AWorker(pp);
BWorker cc_B = new BWorker(cc);
pp_A.doSomeWork();
cc_B.doSomeWork();
}
}