【问题标题】:Are there other benefits to loosely coupled code besides TDD?除了 TDD 之外,松散耦合代码还有其他好处吗?
【发布时间】:2009-05-27 13:32:30
【问题描述】:

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

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

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

【问题讨论】:

    标签: dependency-injection loose-coupling


    【解决方案1】:

    最大的好处是对一个模块进行更改不会以不可预知的方式破坏其他模块。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          【解决方案4】:

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

          【讨论】:

            【解决方案5】:

            正如您所说,松散耦合代码的缺点是增加了复杂性,并且难以理解。当代码松散耦合时,通常不会立即看出代码的作用。

            正如其他人所说:这样做的好处是,当代码/模块/对象/组件不相互依赖时,交换其他部分的代码/模块/对象/组件要容易得多。

            与所有 OO 设计一样,您必须做出权衡 - 拥有易于换入和换出的高度模块化代码对您来说更重要吗?还是拥有更简单的易于理解的代码更重要?你必须做出决定。

            【讨论】:

              【解决方案6】:

              可重用、可扩展性和副作用的减少。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2018-12-15
                • 2018-05-04
                • 2011-10-15
                • 2010-10-22
                • 2015-12-08
                • 1970-01-01
                • 2023-02-09
                相关资源
                最近更新 更多