我可以使用事件总线来解耦所有的应用程序层吗?我正在尝试使用干净的架构。通常,解耦是由边界接口完成的,为此,我看到了一些使用RX观察者的例子。问题是,我可以使用事件总线来解耦这些层吗?事件总线能处理这样的工作吗?
发布于 2016-09-17 15:01:20
事件总线是横切活动的完美选择,所以你不需要通过中间层来传递事件,如果你不需要的话。
对于干净/洋葱/多层体系结构,您不需要事件总线,而需要层之间的清晰契约,即边界接口。他们可能使用RX,也可能不使用RX。
您可以在没有任何接口的事件总线上使用完全解耦模块,然后所有组件都将非常解耦,但是调试、维护和执行任何有意义的操作都会变得非常困难:)因此,即使在使用事件总线时,某种契约也永远是一个好主意。
结合反应性编程和事件总线,您可以创建高度解耦的事件驱动pico服务,该服务受事件总线周围的一些契约限制,以提高事件/命令/数据流的清晰度。
我个人正在使用和工作的RxHub,这正是诞生于传递横切事件和容易的数据流操作链接的需要。
https://stackoverflow.com/questions/39526239
复制相似问题