Java之“面向接口编程”-2

对上一篇文章的补充

补充(2018-12-09):

其实接口的另外一个概念就是监听,比如我要从一个地方获取某个参数的状态,其实有很多种方法例如:事件总线、广播、接口监听等。而在这些方法中使用接口无疑是代价(代码量以及过程中消耗的时间)最小的。

还是使用代码演示吧:

思路:建立一个单例模式的类,任何调用该类,都能实现对接口底层数据的监听

定义接口:

public Interface ILogForApp{
    void getLog(String tag,String msg);
}

中间层:

/**
 *接口的上层
 */
public class LogManager{
    private static LogManager instance;
    public static LogManager getInstance(){ //double-check模式
        if(instance == null){
            synchrozied(LogManager.class){
                if(instance==null){
                    instance=new LogManager();
                }
            }
        }
        return instance;
    }

    //从主端将监听传递进来
    private ILogForApp listener;
    public void setListener(ILogForApp listener){//接口实现的上层
        this.listener=listener;
    }

    public void getLog(String tag,String msg){//数据的源头,接口实现的底层
        if(null != listener){
            listener.getLog(tag,msg);
        }
     }

}

底层:将数据传递进去

public void setData(String tag,String msg){

    LogManager.getInstance().getLog(tag,msg);

}

上层(实现监听的功能):

public class Monitor extends Activity{
    @Override
    public class onCreate(Bundle savedInstanceState){
        LogManager.getInstance().setListener(new ILogForApp(){

            @Override
            public void getLog(String tag,String msg){
                //这里就是从数据源拿到的数据
                //可以进一步操作
            }
        }
}

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值