![Java 中的I/O (三)-- MarsChen Java4Android 教程学习笔记 - Roller44 - 病友说 Java 中的I/O (三)-- MarsChen Java4Android 教程学习笔记 - Roller44 - 病友说](http://img0.ph.126.net/4piw7W8nFa2TtR7Ea_fw4Q==/6619440430234852434.png)
interface Worker{
public void doSomeWork();
}
public class MuJiang implements Worker{
public void doSomeWork(){
System.out.println("修门窗。");
}
}
public class ShuiGuanGong implements Worker{
public void doSomeWork(){
System.out.println("修水管儿。");
}
}
class AWorker implements Worker{
public Worker wk;
public AWorker(Worker wk){
this.wk= wk;
}
public void doSomeWork(){
System.out.println("来自A公司:");
wk.doSomeWork();
}
}
class BWorker implements Worker{
private Worker wk;
public BWorker(Worker wk){
this.wk=wk;
}
public void doSomeWork(){
System.out.println("B公司的:");
wk.doSomeWork();
}
}
public class AskForHelp{
public static void main (String args[]){
MuJiang mj=new MuJiang();
AWorker aw=new AWorker(mj);
aw.doSomeWork();
ShuiGuanGong sgg=new ShuiGuanGong();
BWorker bw=new BWorker(sgg);
bw.doSomeWork();
}
}
![Java 中的I/O (三)-- MarsChen Java4Android 教程学习笔记 - Roller44 - 病友说 Java 中的I/O (三)-- MarsChen Java4Android 教程学习笔记 - Roller44 - 病友说](http://img0.ph.126.net/YmRaCM1jZo6Bif-qq5yFUQ==/6619440430234852446.png)
在上面的例子中,MuJiang 和ShuiGuanGong 是被装饰对象,AWorker 和BWorker 是装饰对象。在处理流中,BufferedReader 就是装饰对象,FileReader 是被装饰对象。