目标
今天我们学习了代理设计模式和有关String的内容
学习内容
今天我们首先做了一个小demo
假如我们要改变我们阅读小说时的字体大小,那么我们应该在设置里面进行设置,我们这个时候就要只需要对我们阅读小说的界面进行操作。
但是如果我们要对多个界面进行改字体颜色大小的操作,我们可以采用针对每一个界面都采用不同设计方法,但是这样以来我们的程序会显得很罗嗦麻烦,而且有可能还会出现一些问题,那么我们采用代理设计模式进行规范。
我们有Read类 Talk类都需要设置字体颜色和大小 Setting类就能完成这个功能所以大家都去找Setting类实现设置字体颜色和大小
首先我们设置setting代理类
public class Setting {
//使用一套方法 强制 使用者来使用这个方法
tochange obj;
public Setting(tochange obj){
this.obj=obj;
}
public interface tochange{
void change(String color,int size);
}
public void StartSetting(){
System.out.println("开始设置");
System.out.println("........");
System.out.println("设置完毕");
obj.change("黄色",20);
}
}
然后我们设置被代理类
public class Read implements Setting.tochange{
public void gotoSetting(){
Setting setting=new Setting(this);
setting.StartSetting();
}
@Override
public void change(String color, int size) {
System.out.println("改变后颜色"+color+"大小"+size);
}
}
实际应用
public class MyClass {
public static void main(String[] args){
Read read=new Read();
read.gotoSetting();
}
}
逻辑:
1.被代理类实现了代理类Setting里面tochange接口的抽象方法change
2.被代理类中写了gotoSetting方法调用Setting里面的StartSetting方法
3.StratSetting方法调用了实现了代理类Setting方法里面的tochange接口的对象的change方法实现了数据的回调
总结
代理设计模式可以在我们设计程序时有需要重复使用的方法的时候发挥作用,他会帮助我们减少代码量,使我们扩展类的某些功能,有多个同权限的调用者时我们可以创建多个盖里类来实现不同的功能。