package IO流_装饰设计模式_pattern;
/**
- 在IO流里经常使用处理流;处理流就是对节点流的包装;这就是装饰.即对原有的功能增强,性能提升
-
装饰的例子:对原汽车的马力不够及外观不漂亮进行加大马力和外观重新装饰;或者如讲话声音小用扩音器增加音量
*/
public class Voice {//Voice声音
private int voice = 10;
//无参构造器
public Voice() {
super();
}
//get与set
public int getVoice() {
return voice;
}
public void setVoice(int voice) {
this.voice = voice;
}
/**
* 如:正常的说话
*/
public void say(){//say说;
System.out.println("没有扩音前音量");
System.out.println(voice);
}
}
//------------------------------------------------------------
package IO流_装饰设计模式_pattern;
/**
- 创建扩音器即对 Voice声音放大
-
类与类之间的关系
-
1.依赖:用形参或者称为局部变量,在调用这个方法时才会调用这个类
-
2.关联:2个属性
-
1)聚合:整体与部分;不一致的生命周期 如:人与手
-
2)组合:整体与部分;一致的生命周期共存亡;如:人与大脑
-
3.继承:父子类关系
-
4.实现;接口与实现类的关系 ;接口是特殊的抽象类
/
public class Amplifier {//Amplifier扩大器
private Voice voice ;
//无参,有参构造器
public Amplifier() {
super();
}
public Amplifier(Voice voice) {
super();
this.voice = voice;
}
/*
* 功能增强
/
public void say(){
//将 voice变量声音放大
System.out.println(“扩音后音量”);
System.out.println(voice.getVoice()1000);
}
}
//----------------------------------------------------
package IO流_装饰设计模式_pattern;
/
-
实现
*/
public class App {public static void main(String[] args) {
Voice v = new Voice();
v.say();
Amplifier am = new Amplifier(v);
am.say();
}
}
//结果----------------------------------------------------
没有扩音前音量
10
扩音后音量
10000