低耦合的理解是什么(低耦合的理解和应用)
导语:低耦合的理解
“低耦合(Low Coupling)”这个词相信大家已经耳熟能详,我们在看spring的书籍、MVC的数据、设计模式的书籍,无处不提到“低耦合、高内聚”,它已经成为软件设计质量的标准之一。那什么是低耦合?耦合是对一个元素与其他元素之间的联系、感知和依赖性的度量。这里提到的元素可以是函数、对象(类)或系统、子系统或模块。如果一个元素与元素B,或认为B通过自己的方法,或不能正常工作时B不存在,那么元素加上元素B耦合引起的问题是,当元素B的变化或不存在,它将影响元件的正常工作,影响系统的可维护性和可变性。同时,A元素只能在B元素存在的环境中工作,这也降低了A元素的可重用性。由于耦合的缺点,我们在软件设计中努力追求“低耦合”。低耦合要求在我们的软件系统中,一个元素不应该过度地依赖于其他元素,请注意这里的“过度”一词。比如我们可以设计一个不与JDK耦合的类,这可能吗?除非你不是一个设计的Java程序。
1、耦合度分类(由高到低)
1)内容耦合。当一个模块直接修改或操作另一个模块的数据,或直接向另一个模块传输数据时,就会发生内容耦合。此时,修改后的模块完全依赖于修改后的模块。类与类之间的直接调用或继承关系就属于这种耦合。应该完全避免内容耦合。关键是不要在类内部直接操作另一个类的对象的数据成员。可以通过在操作类中增加一个函数接口向客户类提供服务来实现。
2)公共耦合是指两个或多个模块一起引用一个全局数据项。
3)控制耦合是指一个模块在接口上发送信号(如开关值、标志量等)来控制另一个模块,并根据信号值来调整接收信号的模块的动作。
4)标记耦合是指复杂的内部数据结构是通过参数在模块之间传递的。数据结构的改变会改变相关的模块。
5)数据耦合是指基本类型的数据通过参数在模块之间传递。
6)非直接耦合就是模块间没有信息传递。
2、为什么要追求低耦合?
原因很简单。当耦合度很高时,在代码维护过程中修改一个地方会涉及到很多地方。如果耦合关系不是澄清修改期间,后果可能是灾难性的,特别是对于有许多变化的项目需求和多人协作开发和维护,修改一个地方会导致模块的错误一直运行稳定,如果是严重的,将导致一个恶性循环,问题永远不能完全解决,开发和测试正与各种各样的问题作斗争。最终会导致项目延迟,降低用户满意度,增加成本。
免责声明:本站部份内容由优秀作者和原创用户编辑投稿,本站仅提供存储服务,不拥有所有权,不承担法律责任。若涉嫌侵权/违法的,请反馈,一经查实立刻删除内容。本文内容由快快网络小茜创作整理编辑!