何时使用Pub/Sub vs Dependency Injection的最佳实践

pbo*_*pbo 5 javascript events dependency-injection

在大多数现代JS框架中,松散耦合UI组件的最佳实践是Pub/Sub的一些实现.

我的问题是这不会使调试,维护你的应用程序更加困难,而依赖注入可以实现相同的结果(松散耦合)?

例如,我的组件应该在单击时打开一个对话框.这需要发生,否则UI将显示为已损坏.对我来说,让组件显式调用某些对话框服务似乎更具可读性.在野外,我看到这个问题解决了更多与pub sub,所以也许我错过了一些东西.

当同时使用这两种方法时,哪些地方可以在事件触发事件或使用注入服务实现该操作时绘制线?

Wik*_*hla 5

Pub-sub适用于应用程序范围内的事件,其中潜在订阅者的数量可能会在发生事件时发生变化或未知.

注入总是设置两者之间的关系,当然,你可以创建装饰器/复合材料并注入由简单对象组成的复合对象,但是当你开始这样做时它会变得混乱.

以树和列表为例.单击节点时,应重建列表.听起来像注射.

但后来你意识到一些节点会触发其他操作,标题会更新,流程会在后台触发等.提升事件并在许多独立订阅者中处理它更容易.

我会说当你组成一个视图和一个控制器或一个视图及其后备存储时,注入层中运行得很好.Pub-sub在同一层中的对象之间工作得很好,例如,不同的独立控制器交换消息并相应地做出反应.