用接口实现回调,代理设计模式

目标

今天我们学习了代理设计模式和有关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方法实现了数据的回调

总结

代理设计模式可以在我们设计程序时有需要重复使用的方法的时候发挥作用,他会帮助我们减少代码量,使我们扩展类的某些功能,有多个同权限的调用者时我们可以创建多个盖里类来实现不同的功能。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,793评论 1 32
  • 代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对...
    yuan_hh阅读 3,971评论 0 0
  • 因为要结局swift3.0中引用snapKit的问题,看到一篇介绍Xcode8,swift3变化的文章,觉得很详细...
    uniapp阅读 10,028评论 0 12
  • 2018年10月22我是(管西芹),我的日精进行动第100天和大家分享我今天的进步,我们互相勉励,携手前行。每天进...
    管西芹阅读 1,098评论 0 0
  • 第一次见到从从,我以为它就是一条普通的小狼狗,但当爷爷的手划过我的面庞,我一下子哭了出来。 “它为什么有六条腿?”...
    某位胡姓人氏阅读 2,755评论 0 1