耦合的强弱取决于(低耦合的理解)

“低耦合(Low Coupling)”这个词相信大家已经耳熟能详,我们在看spring的书籍、MVC的数据、设计模式的书籍,无处不提到“低耦合、高内聚”,它已经成为软件设计质量的标准之一。那什么是低耦合?耦合是对一个元素与其他元素之间的联系、感知和依赖性的度量。这里提到的元素可以是函数、对象(类)或系统、子系统或模块。如果一个元素与元素B,或认为B通过自己的方法,或不能正常工作时B不存在,那么元素加上元素B耦合引起的问题是,当元素B的变化或不存在,它将影响元件的正常工作,影响系统的可维护性和可变性。同时,A元素只能在B元素存在的环境中工作,这也降低了A元素的可重用性。由于耦合的缺点,我们在软件设计中努力追求“低耦合”。低耦合要求在我们的软件系统中,一个元素不应该过度地依赖于其他元素,请注意这里的“过度”一词。比如我们可以设计一个不与JDK耦合的类,这可能吗?除非你不是一个设计的Java程序。

耦合的强弱取决于(低耦合的理解)(1)

1、耦合度分类(由高到低)

1)内容耦合。当一个模块直接修改或操作另一个模块的数据,或直接向另一个模块传输数据时,就会发生内容耦合。此时,修改后的模块完全依赖于修改后的模块。类与类之间的直接调用或继承关系就属于这种耦合。应该完全避免内容耦合。关键是不要在类内部直接操作另一个类的对象的数据成员。可以通过在操作类中增加一个函数接口向客户类提供服务来实现。

2)公共耦合是指两个或多个模块一起引用一个全局数据项。

3)控制耦合是指一个模块在接口上发送信号(如开关值、标志量等)来控制另一个模块,并根据信号值来调整接收信号的模块的动作。

4)标记耦合是指复杂的内部数据结构是通过参数在模块之间传递的。数据结构的改变会改变相关的模块。

5)数据耦合是指基本类型的数据通过参数在模块之间传递。

6)非直接耦合就是模块间没有信息传递。

2、为什么要追求低耦合?

原因很简单。当耦合度很高时,在代码维护过程中修改一个地方会涉及到很多地方。如果耦合关系不是澄清修改期间,后果可能是灾难性的,特别是对于有许多变化的项目需求和多人协作开发和维护,修改一个地方会导致模块的错误一直运行稳定,如果是严重的,将导致一个恶性循环,问题永远不能完全解决,开发和测试正与各种各样的问题作斗争。最终会导致项目延迟,降低用户满意度,增加成本。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页