接口的必要性,独特项目中的注射

时间:2009-03-05 18:06:03

标签: web interface

为什么我要在一个几乎没有机会重复使用或升级的网站上实现接口和依赖注入?

6 个答案:

答案 0 :(得分:5)

它通常使单元测试变得更加简单。例如,您可能具有使用连接到数据库的另一种类型的类型。对于第一种类型的单元测试,您可以注入测试模拟来代替第二种类型,允许您有效地对第一种类型进行单元测试,而无需通过第二种类型间接连接到数据库。

答案 1 :(得分:5)

当你学会了如何编程计算机时,你正在开发一种你的手艺“肌肉记忆”。多年来,您继续以同样的心态进行编程。大多数人从一开始就没有学到所有优秀的OOP原则,所以他们看起来比他们学到的方式更努力。

当您使用OOP语言时,您应养成使用OOP设计技术的习惯,因为这将使您成为更好的开发人员。你的目标应该是重新训练你对编程的肌肉记忆以使用这些技巧。然后你不必问这些问题,并假设这些技术在某种程度上“阻碍了你的编程”。你成为一名程序员,只是按照这种方式进行编程。

答案 2 :(得分:2)

为什么,确实?

我认为接口和注入只是关于重用或升级。

就个人而言,我为所有项目使用接口和DI。避免它们带来好处是不够的开销。

答案 3 :(得分:2)

因为您所做的假设与导致Y2K的假设相同。

答案 4 :(得分:1)

我发现通过我尚未想到的方式重新使用代码变得更加容易。 它还可以在不更改源代码的情况下更改代码的工作方式。

我使用Spring.NET进行依赖注入。

假设您有一个具有DoWork()函数的Machine类。然后创建一个IWorkAlgorithm接口,为每台机器提供特定的算法实现。

每个Machine实例都注入了一个IWorkAlgorithm,而Machine.DoWork()调用注入的实现。

现在您有以下优势:

  1. 您只需编辑XML文件即可交换新的实现。
  2. 您可以通过编辑XML文件来更改每个实现的属性(超时,限制等)。
  3. 您可以在Machine类之外重用您的实现。

答案 5 :(得分:1)

如果你正在进行面向对象的编程,即使你是唯一一个会查看代码的开发人员,你仍然应该进行单元测试,如果不使用依赖注入,那就变得复杂了。

不要忘记您软件上的“其他开发人员”很可能就是您。你可以将大量高度耦合的,相互依赖的代码组合在一起工作,甚至可以在你工作时理解它,但是当你离开项目时,即使是几天,你也会开始忘记所有阻止纱线散开的小东西。

当你回到它(我还没有看到一段不需要进行任何改变的软件)时,你会希望你已经遵循了所有最佳实践。