考虑一个正常的客户订单的应用程序的基础上视模式使用它.查看一部分已变得太多(超过4000文件),它需要以分裂为较小的。


对这个例子中,我们将使用3个项目的视的部分:

  • -有依赖关系到其他2个项目。实例的形式列表。
  • 客户 -有2个形式-的客户名单和客户的详细信息。
  • 订单 -有2形成订单和订单的详细信息。

关于客户的详细信息的形式还有一个名单的订单的客户。该清单是收到的OrdersController所以它是没有问题得到它。当用户选择一个订单,该清单将得到它的guid,并通过它作为参考了详细的形式。

这将意味着我们需要有一个参照订单的项目中的客户的项目。 (1)

而且还上了详细的形式还有一个链接到客户提出,顺序。点击时,它应该打开的客户的详细信息的形式。

这将意味着我们需要有一个参考的客户的项目的订单的项目。 (2)

从(1)和(2)我们必须循环之间的依赖关系的订单和客户的项目。


这怎么可以避免? 某种的插头-在建筑?该项目已经发达和最佳的解决方案涉及为小的代码变化作为可能。

有帮助吗?

解决方案

改变的至少一种类型的一个接口。

例如有一个ICustomer口和客户类型,实现了这个界面。现在,添加ICustomer到的订单的项目和从客户项目设置参考的项目的订单,因此您可以实现接口。所以类型可以现在的工作对ICustomer类型不知道实际执行。

和一个更好的解决方案:-) 创建一个ICustomer和IOrder接口,并把它们添加到第三个图书馆项目。并参考这个项目从其他两个和唯一的工作与接口,不与执行.

其他提示

如果他们是紧密地联接也许他们不应该分裂。

提取接口,并把它们放在单独的大会。因为你使用的软架构,它不应该是坚硬的。看看微软复合UI应用区块的例子和良好做法。

我认为你的主要问题是没有建筑的应用程序。你需要了解的界限和如何划分的功能。该司像你这样的相当人为的,你试图分裂的应用程序的基础上域的对象。尝试使用的用户的角色或功能的主题,该问题可能会消失。

从技术角度来看,我不明白为什么你的意见应该意识到每一个其他的存在-这听起来有点奇怪我。你是不会分割你的数据和业务逻辑和在一天结束GUID仅仅是一个刺痛你可以很容易地通过使用不同的方法。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top