io流的设计模式是?--> 装饰设计模式。
下列举例写一个扩音器(关联关系):
普通声音:
package IODesignPattern;
public class Voice {
private int voice=10;
public Voice(){
}
public int getVoice() {
return voice;
}
public void setVoice(int voice) {
this.voice = voice;
}
public void say(){
System.out.println(voice);
}
}
扩充声音:
package IODesignPattern;
public class Amplifier {
private Voice voice;
public Amplifier(Voice voice){
super();
this.voice=voice;
}
public Amplifier(){
}
public Voice getVoice() {
return voice;
}
public void setVoice(Voice voice) {
this.voice = voice;
}
public void say(){
System.out.println(voice.getVoice()*1000);
}
}
代码测试:
public class App {
public static void main(String[] args){
Voice v=new Voice();
v.say();
Amplifier am=new Amplifier(v);
am.say();
}
}
运行结果:
总结:
1)类与类之间的关系
1、依赖:形参|局部变量
2、关联:属性
聚合:属性 整体与部分不一致的生命周期,如人与手
组合:属性 整体与部分一致的生命周期,如人与大脑
3、继承:父子类关系
4、实现:接口与实现类关系
2)io流的节点流和处理流也是这样的关联关系,处理流用来加强节点流的功能。