在我目前工作的一个系统中,我有被定义为接口和基类许多组件。该系统的每个部分都有他们与系统的其他部分进行交互一些具体的点。

例如,准备好组件的数据准备迎接一些数据,最终需要去所述数据处理部,所述通信组件需要查询它们的状态不同的组件用于中继到外部等

目前,我粘合起来使用“神对象”,或与该系统的不同部分的深入了解的对象系统的这些部件。它注册用在这里的活动,并在那里穿梭结果的方法,在这里创建了一个回调方法,并返回那边那个方法的结果,并通过多线程队列处理,因为它“知道”某些行为有许多要求对STA线程运行等

虽然它的方便,对我而言,这一种类型的知道这么多关于如何在系统中其他所有人的设计。我更喜欢一个更通用的集线器可以给出的实例可以暴露事件或方法或回调或可消费这些。

我已经看到更多的关于反应性框架的IObservable / IObserver特征和正在轧制成.NET 4.0(我相信)。

我可以利用这种模式来帮助取代我的“上帝对象”?我应该如何去这样做呢?是否有任何资源使用该图案为这一特定目的吗

有帮助吗?

解决方案

这样看来,您可以将您的神对象的什么的 MSDN 描述这里:

  

要创建复杂事件处理   使用Microsoft(CEP)应用程序   的StreamInsight平台,为您打造   定义事件结构,   产生和消耗的对象   事件和查询模板   包含所需的业务逻辑   处理的事件。

我们的团队不动到.NET 4.0任何时间很快(不幸)。因此,我们绕过一个的神对象的通过建立一个自定义的框架,类似于什么MAF / MEF提供了方案。这种使用微软所说的的适配器的创建分布式知识库。每个适配器仅用于它自己的模块,负责,传递数据,事件等有一个共同的运算符的接收的数据和事件,过程和传递回各自的适配器。

IObservableIObserver的理解借给我相信的神对象的不会是必要的 - 封笔什么不同部位内正在进行的分布式知识库。一个明显的优点是这些接口也似乎是,在中间通信(即适配器)不再需要。因此,知识的分布是真正在的IObservable派生类。该模型固有地派生的讲话者/应答关系。 - 没有调解/仲裁类

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top