我可以使用事件总线来解耦所有的应用程序层吗?我正在尝试使用干净的架构。通常解耦是由边界接口完成的,我已经看到了一些使用 RX 观察者的例子。问题是我可以使用事件总线来解耦层吗?事件总线可以处理这样的工作吗?
问问题
198 次
1 回答
1
事件总线非常适合横切活动,因此如果不需要,您无需通过中间层来传递事件。
对于干净/洋葱/多层架构,您不需要事件总线,但需要明确层之间的合同,即边界接口。他们可能会也可能不会使用 RX。
您可以在没有任何接口的事件总线上使用完全解耦模块,然后所有组件都将非常解耦,但是调试、维护和做任何有意义的事情都会变得非常困难:) 所以某种契约总是好的即使使用事件总线的想法。
结合反应式编程和事件总线,您可以创建高度解耦的事件驱动 pico 服务,这些服务由事件总线周围的一些合同约束,以提高事件/命令/数据流的清晰度。
我个人正在使用和开发RxHub,它的诞生正是出于传递横切事件和简单的数据流运算符链接的需要。
于 2016-09-17T15:01:20.200 回答