2014-01-20 31 views
0

我们正在构建一个计算引擎,其中有许多对象在执行计算时进行交互。这些对象彼此之间具有依赖关系,并模仿真实世界系统的一个子集。我们正在逐步构建计算引擎,我们逐渐模拟系统的某些部分,因此随着我们的进展,可能会导致依赖关系图的变化。我们可以明确声明代码中对象之间的依赖关系,但这可能导致将来不得不更改这部分代码。会使用IoC缓解这个问题吗?或者它会是一个矫枉过正的问题?IoC适合计算引擎吗?

+0

您可以在这些阶段之前和之后提供一些示例代码吗? –

回答

0

有几种方法,应用依赖注入可能是有用的:

  1. 它可以让你需要单独进行测试抽象代码。在你的情况下,你可能想要将计算引擎分成多个部分,以便更容易地测试引擎的较小部分,或者抽象引擎在内部使用的数据库引擎。
  2. 它允许该引擎由多个团队开发。通过取决于其他团队提供的抽象(或者您为其他团队指定),它可以让您取得进展,而不会被其他团队的进度所阻塞。
  3. 如果发动机由较小的部件组成,必须是可更换的(规格图案),为这些部件注入抽象可以帮助实现这一点。如果你只是依赖抽象,你甚至可以在运行时执行此操作。

但是,如果这个计算引擎是由一个团队开发,还没有得到需要抽象(数据库,文件系统等)上的任何东西任何相关性,而不是复杂,测试单独部分将使开发和验证更容易,在该计算引擎中使用依赖注入可能无济于事。