设计模型以便于对象之间的交互

时间:2012-06-07 20:56:42

标签: c# .net design-patterns

在我的.NET应用程序中,数据模型包含在几个类中: 通话,电话,连接

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

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

public class CallManager : ICallManager
public class PhoneManager : IPhoneManager

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

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

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

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

2 个答案:

答案 0 :(得分:4)

基本上,这听起来像是在使用Mediator模式。但是Mediator仍然需要访问对象实例。

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

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

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

答案 1 :(得分:2)

您可以考虑使用的另一个选项是observer pattern。这有助于减少对象之间的硬连接。更新对象时,会导致事件,并且会向此事件通知原始已修改对象未知的一组对象。这里没有复杂的纵横交流。在创建这些对象之后,只需要对象的布线。您也可以参考this article