使用接口实现数据回调

使用接口实现数据回调

这个其实也就是我们的代理设计模式,能更加方便功能的扩展
比如我们需要做一个阅读界面和聊天界面,需要对它们进行一些简单的设置,就是设置一些背景颜色以及边框的大小。
问题也来了,这两个对象都要使用这个设Setting类,我们就可以定义一个接口,统一管理传递数据的方式,并且保证每个使用Setting类都必须实现这个方法,代码引用
首先我们可以定义一个Setting类,并在里面有一个内部接口

public class Setting {
   FontSettingInterface obj;//记录为谁设置颜色和大小 记录做完事情之后 将数据返回给谁
    public Setting(FontSettingInterface obj){
        this.obj=obj;
    }
    public interface FontSettingInterface{
        void change(String color,int size);

    }

然后我们就可以去定义我们的阅读界面和聊天界面,这是阅读类

public class Read implements Setting.FontSettingInterface{
    private String  text;
    private String color;
    private int size;
    public Read(String text){
        this.text=text;
    }
    public void goToSettings(){
        //1.创建设置页面
        Setting setting=new Setting(this);
        setting.startSetting();
    }
    public void change(String color,int size){
        System.out.println("改变前的颜色" +this.color+
        "大小"+this.size);
        this.color=color;
        this.size=size;
        System.out.println("改变后的颜色" +this.color+
        "大小"+this.size);
        }
}

下面这是聊天类

public class Chat implements Setting.FontSettingInterface {
    String text2;
    String color;
    int size;
    public Chat(String text2){
        this.text2=text2;
    }
    public void gotoSettings(){
        Setting setting=new Setting(this);
        setting.startSetting();

    }


    @Override
    public void change(String color, int size) {
        System.out.println("改变前的颜色" +this.color+
                "大小"+this.size);
        this.color=color;
        this.size=size;
        System.out.println("改变后的颜色" +this.color+
                "大小"+this.size);
    }
}

注意到我们在Setting类当中已经实现了回调,最后我们在main函数里面实现就行了

public class Myclass {
    public static void main(String[] args){
        Read read=new Read("test");
        read.goToSettings();
        Chat chat=new Chat("test2");
        chat.gotoSettings();


    }
}

最终的结果如下图:


image.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,773评论 1 32
  • 点击查看原文 Web SDK 开发手册 SDK 概述 网易云信 SDK 为 Web 应用提供一个完善的 IM 系统...
    layjoy阅读 14,674评论 0 15
  • 今天意外的发现了。 他真的在一节下课绕着自己班的教室转圈圈。 我当时正好路过那里,结果意外地听到他们班的女孩子对他...
    入梦安眠阅读 180评论 1 0
  • 我是一颗三千年前的种子, 布里斯班的海风将我吹起, 便开始了漂泊流浪; 兜兜转转, 那么多年, 一片片的土地向我招...
    布里斯班的斑马阅读 331评论 0 3
  • 对比分析:现在进行时,被动语态 我写的句子不完整“非形合”,不符合语法结构 I love you
    SunnySun_fb42阅读 248评论 0 0

友情链接更多精彩内容