我不知道我是否应该使用publish-subscribe(现在对我来说似乎很性感,但稍后使用..),观察者或DI和调用方法。
我有两种情况:
- (A)一个类产生一个“事件”,该事件应运行其他类的代码(数据已更改-重新计算内容)
- (B)一个类从另一个类中调用一个方法,并且在被调用方法返回后,当被调用方法中发生某些事情时,需要运行代码(完成任务的一部分时执行此代码,因为我需要修改内部状态)
选项:
- 创建某种事件总线,一个类订阅一个主题,另一个类向其发布内容。有一个发布者,一个订阅者。事情是分离的。很难导航并弄清楚什么时候叫什么。
- 在“事件”类中创建观察者列表(有一个观察者)并进行通知。该列表包含接口(或类似于C#中的事件)。被通知的类需要知道在哪里添加自己(作为观察者)。不像以前那样解耦,不需要任何事件总线。
- 使用DI将需要直接通知的实例注入“发布者”并调用某种方法。简单,耦合性更高?
-
在某种初始化(A)或方法调用(B)期间,回调从一个类传递到另一个类(是否需要将回调传递给另一种方法以进行调用?)
只是想补充一下系统正在迅速变化,它更多是概念证明或原型。