【问题标题】:What is the difference between observer(design pattern), eventbus(greenroboto), LiveData(Android)?观察者(设计模式)、事件总线(greenroboto)、LiveData(Android)有什么区别?
【发布时间】:2018-08-05 15:21:42
【问题描述】:

我无法区分使用什么。 似乎都以相同的方式工作,但方式不同,但基本逻辑是相同的,请让我知道所有主要区别是什么?

【问题讨论】:

  • 观察者模式允许我们在软件架构中完成一些非凡的事情。使我们能够完成的是低耦合、高内聚。这意味着,我们能够避免通过代码中的引用将所有类实例连接在一起,而是维护一个由这些对象组成的系统,这些对象通过事件总线系统进行通信。换句话说,我们可以使用 EventBus 代替来回传递对象的引用以允许我们对父 Activity 进行回调。工作室。

标签: observer-pattern greenrobot-eventbus android-livedata


【解决方案1】:

EventBus 只是一种在编写时考虑到类似观察者 情况的工具。 EventBus 的一般用法是触发事件,因此我们可以使用 Observer 这个词来适应它。观察者模式使用事件或消息向感兴趣的对象通知有关正在观察(更改)的对象的更改

EventBus 也是非观察者模式,因为如果您有 N 个对象并且想要在所有对象之间进行通信,如果您使用观察者模式但只有一个全局对象,则需要 N*N 观察者EventBus 足以完成同样的工作。

所以EventBus 是 EventBus 模式。


LiveData 也被认为是观察者模式中使用的可观察数据持有者类。与常规 observable 不同,LiveData生命周期感知,这意味着它尊重其他应用组件的生命周期,例如活动、片段或服务。

所以LiveData 是 Android 的观察者模式,或者可以认为是单独的 LiveData 模式。

【讨论】:

  • 第二段抄自here
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-11-23
  • 2013-05-15
  • 2010-12-24
  • 1970-01-01
  • 2021-07-09
  • 2015-02-24
  • 1970-01-01
相关资源
最近更新 更多