除了TDD之外,松耦合代码还有其他好处吗?

时间:2009-05-27 13:32:31

标签: dependency-injection loose-coupling

当我正在进行TDD时,它迫使我采用Dependency Injection原则,最终得到松散耦合的代码。

有人告诉我,理解松散耦合代码的应用程序会更难理解。

你能告诉我松散耦合代码的优点和缺点吗?

6 个答案:

答案 0 :(得分:7)

最大的优点是,对一个模块进行更改不会以不可预测的方式破坏其他模块。

答案 1 :(得分:4)

依赖注入不会自动导致低耦合。我同意上面关于低耦合的优点的答案。依赖注入的主要好处是它提高了可测试性,它可以帮助您遵循程序到接口的GoF原则,而不是实现。但是你也可以对注入的依赖关系进行高耦合。

答案 2 :(得分:3)

另一个好处是,当您有多个实现时,可以更轻松地替换组件。

想象一下,你有一个购物车系统,它通常存储和读取数据库,这是默认的。但是你可以注入它以便它使用后端,这不是很好但是当你没有数据库时它可以工作。

答案 3 :(得分:2)

由于松散耦合,它的变化很大。这就是重点。如果您不需要,松散耦合可能会引入许多间接性,从而导致系统具有更多“深度”:您需要向下看一个级别才能看到发生的一切。

答案 4 :(得分:1)

就像你说的那样,松散耦合代码的缺点是增加了复杂性,而且很难理解。通常不会立即明白代码在松散耦合时的作用。

正如其他人所说的那样:好处是当片段彼此不依赖时,交换其他代码/模块/对象/组件会更容易。

与所有OO设计一样,您需要做出权衡 - 拥有高度模块化的代码更容易进出交换更重要吗?或者更容易理解易于理解的代码更重要?你必须决定。

答案 5 :(得分:0)

重复使用,可扩展性和减少副作用。