1

我有 3 个项目的解决方案

Project1 - main application
Project2 - graphing application
Project3 - graphing library

从 Project1 中的对象访问数据。项目 1 引用了项目 2 来创建数据(表单)的显示,而 projectg 2 引用了项目 3 来完成渲染图形的实际繁重工作。

现在,项目 3 需要访问项目 1 的对象/方法,因为这是数据所在的位置。但是,当我将项目 3 的引用添加到项目 1 时,我收到有关循环引用的错误。

我该如何解决这个问题?

谢谢,礼萨

4

3 回答 3

8

你需要保持一个方向的流动......向下。

为了解决这个问题,我通常有一个“模型”项目。数据模型全部单独存储在该项目中,并且该项目被需要它们的任何其他项目引用。

于 2012-11-09T02:01:14.990 回答
4

不; 没有办法解决这个问题。你有一个循环依赖。您将需要重构应用程序的各个层。

就层数而言,我发现最适合我的东西(从最低到最高)

  1. 全局方法和配置(例如基本类型扩展方法、系统消息等)。
  2. 数据访问层。没有业务逻辑;只有数据 CRUD 逻辑。
  3. 业务层。在此处添加业务逻辑。
  4. UI 增值层。这就是你的图形库之类的地方。(选修的)
  5. 界面层。这是您构建最终用户看到的 UI 的地方。
于 2012-11-09T02:02:40.013 回答
2

处理循环引用的一种方法是重构您的应用程序。

创建项目4,将项目通用的接口放在那里。您可以从所有其他项目中包含项目 4。现在在其他三个项目之一中实现该项目的接口,并通过某种工厂机制使用实现(控制容器的反转也很好,但对于更简单的应用程序来说可能有点过分了)。

于 2012-11-09T02:03:36.340 回答