考虑使用WinForms的基于MVC模式的普通客户订单应用程序。视图部分增长过大(超过4000个文件),需要分割成较小的文件。
对于这个示例,我们将为视图部分使用3个项目:
在“客户详细信息”表单中,还列出了该客户的订单列表。列表是从OrdersController收到的,所以获得它是没有问题的。当用户选择一个订单时,列表将得到它的guid,并将它作为对order表单的引用。
这意味着我们需要在Customers项目中引用Orders项目。(1)
但是,在订单详细信息表单中,还有一个指向发出该订单的客户的链接。单击时,应打开“客户详细信息”表单。
这意味着我们需要在Orders项目中引用Customers Project。(2)
来自(1)和(2),我们将在订单和客户项目之间存在循环依赖关系。
如何避免这种情况?是一种插件式的体系结构?该项目已经开发,最好的解决方案将涉及尽可能少的代码更改。
发布于 2008-09-23 13:23:01
将至少一种类型更改为接口。
例如,有一个ICustomer接口和一个实现此接口的客户类型。现在,将ICustomer添加到orders项目,并从customers项目中设置对Orders项目的引用,以便实现接口。Order类型现在可以在不知道实际实现的情况下针对ICustomer类型工作。
为了获得更好的解决方案:-)创建一个ICustomer和一个IOrder接口,并将它们添加到第三个库项目中。并从其他两个中引用此项目,并且只与接口一起工作,而不使用实现。
发布于 2008-09-23 13:20:21
如果它们是紧密耦合的,也许它们就不应该分开。
发布于 2008-09-23 13:22:13
提取接口并将它们放在单独的程序集中。由于您使用的是MVC架构,所以应该不难。查看Microsoft应用程序块中的示例和良好实践。
https://stackoverflow.com/questions/120898
复制相似问题