事件总线框架-OTTO

使用OTTO来帮助代码解耦
摘要由CSDN通过智能技术生成

在团队开发过程中,代码的耦合是一件让人感到十分头大的事情,会导致代码质量降低、代码提交冲突等一系列的问题。

原理

在传统的代码中类A中调用类B的方法,往往需要先得到类B的实例,然后再调用类B的具体方法(比如在Activity页面中发起一次网络请求,随后在请求的回调函数中修改该页面的UI),如此一来类A和类B就耦合在了一起。

OTTO则使用了事件总线机制来避免此类问题,即:类A需要产生并发出 一个“事件通知”, 如果B订阅了该“事件“,那么它将会接受到这个通知,并做出相应的操作。如此一来类A同类B之间就实现了解耦。

下面以Android Studio为例,同大家分享如何使用OTTO框架来减少代码中的耦合。

添加引用

Gradle的配置如下:

dependencies {
    ...
    compile 'com.squareup:otto:+'
    ...
}

代码

创建一个Bus对象

    Bus bus= new Bus()
  • 此处的Bus对象往往作为一个全局对象而存在。

在类B中得到已经创建好的Bus对象并注册

    ...
    getBusInstance().register(this)
    ...

    @Subscribe
    public void getUser(User user) {
           //do something
    }
  • @Subscribe 表示订阅事件,当包含着User对象的“事件通知”发送出来后,类B就会接收到该通知,并调用getUser方法。

在类A中发送一个包含User对象的“事件通知”

    getBusInstance().post(new User());
  • 当上方代码被调用后,类A就会发送一个包含User对象的“事件通知”

更多参考

官网地址

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值