【发布时间】:2012-04-03 11:25:00
【问题描述】:
我在 VS2010 中有一个包含多个项目的解决方案,每个项目在我的应用程序中构成一个层。我有当前是没有方法的对象的业务实体,并且我有一个管理层引用其项目中的业务实体层。我现在认为我的应用程序设计得很糟糕,并且想将方法从帮助类(位于另一层中)移动到我将在业务实体本身中创建的方法中。
例如,我有一个 VirtualMachine 对象,它使用一个辅助类调用 Reboot() 方法,该方法将请求传递给管理层。静态管理器类与重新启动 VM 的 API 对话。我想将 Reboot() 方法移动到 VirtualMachine 对象中,但我需要引用管理层:
public void Reboot()
{
VMManager.Reboot(this.Name);
}
因此,如果我在我的实体项目中添加对我的管理项目的引用,我会收到循环依赖错误,这是应该的。我该如何解决这种情况?我需要在实体层和管理层之间再增加一层吗?或者,我应该忘记它并保持原样。
应用程序现在工作正常,但我担心我的设计不是特别以 OOP 为中心,我想纠正这个问题。
【问题讨论】:
标签: c# .net oop design-patterns circular-dependency