在我目前正在处理的系统中,我有许多组件被定义为接口和基类。系统的每个部分都有一些特定的点,它们与系统的其他部分交互。
例如,数据准备组件准备了一些数据,这些数据最终需要进入数据处理部分,通信组件需要查询不同组件的状态以中继到外部等。
目前,我使用“上帝对象”或对系统不同部分有深入了解的对象将系统的这些部分粘合在一起。它在这里注册事件并将结果传送给那里的方法,在这里创建一个回调方法并在那里返回该方法的结果,并通过多线程队列传递许多请求以进行处理,因为它“知道”某些操作已经在 STA 线程等上运行
虽然它很方便,但让我担心的是,这种类型非常了解系统中其他人的设计方式。我更喜欢一个更通用的集线器,它可以提供可以公开事件或方法或回调或可以使用这些的实例。
我已经看到更多关于反应式框架的 IObservable/IObserver 功能的信息,并且这些功能正在被纳入 .NET 4.0(我相信)。
我可以利用这种模式来帮助替换我的“上帝对象”吗?我该怎么做呢?是否有任何资源可以将此模式用于此特定目的?