`
wx1568037608
  • 浏览: 34744 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

代码耦合

 
阅读更多

代码耦合:一个软件结构内不同模块之间互连程度的度量(耦合性也叫块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差,模块间耦合的高低取决于模块间接口的复杂性,调用的方式以及传递的信息。)

软件工程规定写代码的原则是“高内聚,低耦合”。内聚是代码块间的独立性,耦合是各个代码块间的联系。

对于低耦合,粗浅的理解是:一个完整的系统,模块与模块之间,尽可能的使其独立存在。也就是说,让每个模块,尽可能的独立完成某个特定的子功能。模块与模块之间的接口,尽量的少而简单。

代码内聚就是一个模块内各个元素彼此结合的紧密程度,高内聚就是一个模块内各个元素彼此结合的紧密程度高。所谓高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。

高内聚,低耦合的系统有什么好处呢?事实上,短期来看,并没有很明显的好处,甚至短期内会影响系统的开发进度,因为高内聚,低耦合的系统对开发设计人员提出了更高的要求。长期来看,低耦合的模块便于进行单元测试,且便于维护。

举例:
在java中,你想在你的程序中调用某个类比如说是A1,如果你在程序中直接new A1(),这样就写死了。如过下次业务逻辑有变化,你就必须重新修改A1类的代码。在这种情况下,如果A1类被其他的程序调用,你修改了A1类的代码,可能会对其他程序造成影响。
但是如果你在配置文件里配置你要用到的类的相关属性,通过程序动态地区获得,你只用修改这个配置文件,把他指向另一个类A2就行了。用A2替代A1。这就是低耦合,也是java的面向增加开放,面向修改关闭的原则。

分享到:
评论

相关推荐

    ios-分离代码,降低代码耦合快速开发框架.zip

    根据https://github.com/Akateason/XTTableDatasourceDelegateSeparation,加入了阳神的cell自适应高度代码,MJExtension,MJExtension,AFNetworking等常用开发框架,主要用于分离控制器中的代码,降低代码耦合程度...

    代码 复杂网络最近邻耦合网络程序

    代码 复杂网络最近邻耦合网络程序代码 复杂网络最近邻耦合网络程序代码 复杂网络最近邻耦合网络程序代码 复杂网络最近邻耦合网络程序代码 复杂网络最近邻耦合网络程序代码 复杂网络最近邻耦合网络程序代码 复杂网络...

    耦合模理论的matlab仿真代码

    在本压缩包中,包含了一个名为`tmmcoupling.m`的MATLAB代码文件,这是一段用于模拟耦合模理论的程序,可以直接运行。 耦合模理论主要研究两个或多个模式之间的能量交换,这些模式可以是电磁波、声波或者机械振动等...

    C3PO:协同代码耦合平台-开源

    C3PO,全称为“协同代码耦合平台”,是由法国原子能与可再生能源委员会(CEA)开发的一个Python编程框架,旨在促进不同代码间的高效、灵活耦合。这个开源项目为科研人员和工程师提供了一个集成环境,使得多学科、多...

    车桥耦合模型MATLAB代码

    车桥耦合模型MATLAB代码是用于研究车辆与桥梁相互作用的一种数值仿真工具。在交通工程和土木工程中,这种模型对于理解桥梁在列车通过时的动态响应至关重要。MATLAB作为一种强大的数值计算和编程环境,是实现这类复杂...

    量表耦合统一,无钩花

    我们提出对规范耦合统一尺度的解释,该尺度与任何新的粒子阈值均无关。 我们重新审视了大统一理论,并表明可以从粒子物理光谱中完全消除标量和矢量变色夸克。 结果,在我们的方法中,轨距等级问题基于不同的理由,...

    ios-MVVM-分离简化控制器中创建tableView和collectionView的代码.zip

    再看了几篇博客后,总结整理下一个快速开发MVVM框架,分离控制器代码,降低代码耦合 终于再也不用为ViewController中一坨坨tableView和collectionView的烦人代码忧虑了 代码加入了cell自适应高度代码,代码实现...

    MyBatis Spring声明式事务管理示例代码

    而且编程式事务管理会造成事务管理代码和被管理的代码耦合,不符合软件工程中“高内聚、低耦合”的要求。若采用AOP,则可以避免以上缺陷。 作者博客的示例代码:http://legend2011.blog.51cto.com/3018495/1239139。

    2维严格耦合波方法matlab代码

    总之,二维严格耦合波方法MATLAB代码是研究周期性结构光学特性的强大工具,它结合了理论模型的精确性和计算软件的易用性,为理解和设计新型光子器件提供了便利。通过深入学习和应用`rcwa_2d`代码,我们可以进一步...

    Python技术代码重构常见问题解析.docx

    Python 技术代码重构是软件...通过解决代码冗余、命名规范、长函数、代码耦合、缺乏测试以及性能问题,可以显著提升代码质量。重构是一个持续的过程,需要开发者不断审查、改进代码,以适应项目的变化和需求的发展。

    Android代码-ComponentDemo

    在项目的开发过程中,随着开发人员的增多及功能的增加,如果提前没有使用合理的开发架构,那么代码会越来臃肿,功能间代码耦合也会越来越严重,这时候为了保证项目代码的质量,我们就必须进行重构。 比较简单的开发...

    swift-(OC版)总结整理下一个快速开发框架以更优雅的方式写代码

    总之,"swift-(OC版)总结整理下一个快速开发框架以更优雅的方式写代码"是一个旨在提高开发效率和代码质量的项目,它利用MVVM设计模式优化了代码结构,实现了自动化的cell高度适应和网络请求缓存,降低了代码耦合,...

    复杂网络最近邻耦合网络程序matlab代码.zip

    在这个"复杂网络最近邻耦合网络程序matlab代码.zip"压缩包中,包含的是使用MATLAB编写的程序,用于构建和模拟最近邻耦合网络。接下来,我们将深入探讨这些关键概念和技术。 1. **复杂网络**:复杂网络的特征包括...

    matlab2016代码-Coupling_Matrix_Filter_Synthesis:耦合矩阵法合成微波滤波器

    matlab2016代码耦合矩阵合成 耦合矩阵法合成微波滤波器 该套件包括通过策略和耦合矩阵合成筛选器的文件,并且所有代码都在Matlab2016环境下编写。 参考 * [1] RJ Cameron,“ Chebyshev滤波功能的通用耦合矩阵合成...

    Android代码-AndroidModular

    关于Android模块化我有一些话不知当讲不当讲 关于Android模块化我有一些话不知当讲不当讲 模块化场景 架构演变 ...同时随着业务的增多,代码变的越来越复杂,每个模块之间的代码耦合变得越来越严重,解

    mp-redux:解耦小程序中的业务与视图,让测试更容易

    代码耦合严重,业务代码重复,往往改一处就会引起诸多功能也要跟着修改 业务逻辑都写在视图逻辑层,但是有苦于没有办法将业务代码剥离 代码越来越臃肿不堪 对老代码不敢碰,会影响很多业务逻辑 为什么借鉴redux 用为...

    耦合映像格子算法实现(CML)

    公交网络邻接矩阵计算;基于公交网络的耦合映像格子算法实现;突加扰动后网络的级联失效节点比例计算;2000节点,1000时间步运行时间20分钟;C#代码实现;

    代码编写规范说明书.doc

    - 模块化规则:提倡模块化设计,减少代码耦合。 - 交流规则:注释和命名应易于理解和沟通。 6. **编程准则**: - 变量使用:变量声明和初始化应明确,避免全局变量。 - 数据库操作:遵循最佳实践,如事务管理、...

    重构--改善代码结构

    3. **易于功能扩展**:重构过的代码结构更加合理,添加新功能时会更加容易,减少了因代码耦合度高而导致的问题。 4. **减少BUG**:重构有助于早期发现和修复潜在的错误,提高了软件的稳定性。 5. **提高开发效率**:...

    abqus车桥耦合命令流_耦合_MATLAB车桥耦合_matlab车桥耦合_车桥耦合matlab_dawnci8

    在本资源"abqus车桥耦合命令流_耦合_MATLAB车桥耦合_matlab车桥耦合_车桥耦合matlab_dawnci8"中,主要涉及的是使用ABAQUS软件进行车桥耦合分析,并结合MATLAB进行数据处理和控制流程。下面将详细介绍这一主题的关键...

Global site tag (gtag.js) - Google Analytics