当前位置:  开发笔记 > 编程语言 > 正文

循环依赖

如何解决《循环依赖》经验,为你挑选了1个好方法。

考虑使用WinForms基于MVC模式的普通客户订单应用程序.视图部分增长太多(超过4000个文件),需要将其拆分为较小的文件.


对于此示例,我们将使用3个项目作为视图部分:

Main - 与其他2个项目有依赖关系.使用列表实例化表单.

客户 - 有2种表格 - 客户列表和客户详细信息.

订单 - 有2种形式 - 订单清单和订单详细信息.


在客户详细信息表单上还有该客户的订单列表.该列表是从OrdersController接收的,所以它没有问题.当用户选择订单时,列表将获得它的guid并将其作为对Order Details表单的引用传递.

这意味着我们需要在Customers项目中引用Orders Project. (1)

但是,在订单详细信息表格中,还有一个指向客户的链接.单击时,应打开"客户详细信息"表单.

这意味着我们需要在Orders项目中引用Customers Project. (2)

从(1)和(2)我们将在Orders和Customers项目之间存在循环依赖关系.


如何避免这种情况?某种插件架构?该项目已经开发出来,最佳解决方案将尽可能少地改变代码.



1> Maurice..:

将至少一种类型更改为接口.

例如,有一个ICustomer接口和一个实现此接口的Customer类型.现在将ICustomer添加到订单项目中,并从customers项目中设置对Orders项目的引用,以便您可以实现该接口.Order类型现在可以在不知道实际实现的情况下对ICustomer类型起作用.

为了获得更好的解决方案:-)创建一个ICustomer和一个IOrder接口,并将它们添加到第三个库项目中.并从其他两个引用该项目,仅与接口一起工作,从不与实现一起工作.

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有