4

在我的 .NET 应用程序中,数据模型包含在几个类中:Call、Phone、Connection

对于每种类型,我都有一个“管理”实体(CallManager、PhoneManager 等)。

每种类型都实现了一个接口,以便以后能够切换实现,或者为了测试目的模拟一些类:

public class CallManager : ICallManager
public class PhoneManager : IPhoneManager

最后,“主”对象引用了这些管理器中的每一个,并使用它们来检索/更新所需的对象实例(例如,创建一个新的 Call 对象并将其存储在 CallManager 中,从 PhoneManager 中检索一个电话对象等)。

这样的对象依赖于以下每种类型:

public class AppManager
{
    public AppManager(ICallManager callManager, IPhoneManager phoneManager, etc...)
}

是否有任何设计原则或模式可以促进各种对象之间的交互,以简化正确维护数据和更新数据的任务,而不需要在所有这些管理器对象之间建立一组密集的相互关系,并且没有一个类依赖于所有其他类?

4

2 回答 2

4

从本质上讲,这听起来像是您正在使用中介者模式。但是中介者仍然需要访问对象实例。

http://en.wikipedia.org/wiki/Mediator_pattern

听起来您也已经实现了工厂模式,但是阅读它可能会带来一些灵感。

http://en.wikipedia.org/wiki/Factory_pattern

于 2012-06-07T21:16:28.957 回答
2

您可以考虑使用的另一个选项是观察者模式。这有助于减少对象之间的硬互连。您更新一个对象,这会导致一个事件,并且原始修改对象未知的一组对象会收到此事件的通知。这里没有复杂的交叉通信。只有在创建这些对象之后才需要对这些对象进行布线。你也可以参考这篇文章

于 2012-06-08T11:48:17.127 回答