在一个发布者和一个订阅者之间使用发布-订阅模式是否可行?

时间:2019-04-15 17:10:38

标签: c# design-patterns dependency-injection publish-subscribe observer-pattern

我不知道我是否应该使用publish-subscribe(现在对我来说似乎很性感,但稍后使用..),观察者或DI和调用方法。 我有两种情况:

  • (A)一个类产生一个“事件”,该事件应运行其他类的代码(数据已更改-重新计算内容)
  • (B)一个类从另一个类中调用一个方法,并且在被调用方法返回后,当被调用方法中发生某些事情时,需要运行代码(完成任务的一部分时执行此代码,因为我需要修改内部状态)

选项:

  1. 创建某种事件总线,一个类订阅一个主题,另一个类向其发布内容。有一个发布者,一个订阅者。事情是分离的。很难导航并弄清楚什么时候叫什么。
  2. 在“事件”类中创建观察者列表(有一个观察者)并进行通知。该列表包含接口(或类似于C#中的事件)。被通知的类需要知道在哪里添加自己(作为观察者)。不像以前那样解耦,不需要任何事件总线。
  3. 使用DI将需要直接通知的实例注入“发布者”并调用某种方法。简单,耦合性更高?
  4. 在某种初始化(A)或方法调用(B)期间,回调从一个类传递到另一个类(是否需要将回调传递给另一种方法以进行调用?)

    只是想补充一下系统正在迅速变化,它更多是概念证明或原型。

0 个答案:

没有答案
相关问题