在团队开发过程中,代码的耦合是一件让人感到十分头大的事情,会导致代码质量降低、代码提交冲突等一系列的问题。
在传统的代码中类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()
在类B中得到已经创建好的Bus对象并注册
...
getBusInstance().register(this)
...
@Subscribe
public void getUser(User user) {
//do something
}
在类A中发送一个包含User对象的“事件通知”
getBusInstance().post(new User());
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/duanymin/article/details/47834125