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

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

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

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

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

举例:

在java中,你想在你的程序中调用某个类比如说是A1,如果你在程序中直接new A1(),这样就写死了。如过下次业务逻辑有变化,你就必须重新修改A1类的代码。在这种情况下,如果A1类被其他的程序调用,你修改了A1类的代码,可能会对其他程序造成影响。

但是如果你在配置文件里配置你要用到的类的相关属性,通过程序动态地区获得,你只用修改这个配置文件,把他指向另一个类A2就行了。用A2替代A1。这就是低耦合,也是java的面向增加开放,面向修改关闭的原则。

java 耦合度_代码的耦合度相关推荐

  1. cloc JAVA文件_代码统计工具CLOC的使用方法

    原标题:代码统计工具CLOC的使用方法 在处理不同的项目时,有时您可能需要提供进度报告或统计信息,或者只是计算代码的价值. 有一个简单但功能强大的工具叫做" cloc - count lin ...

  2. 申通快递java工资_[代码全屏查看]-java查询申通快递

    [1].[代码] 用到了htmlunit的架包 package org.sjcx.tool; import com.gargoylesoftware.htmlunit.NicelyResynchron ...

  3. java多态 降低代码耦合性_如何降低耦合度

    一.什么是耦合度 耦合度就是某模块(类)与其它模块(类)之间的关联.感知和依赖的程度,是衡量代码独立性的一个指标,也是软件工程设计及编码质量评价的一个标准.耦合的强度依赖于以下几个因素:(1)一个模块 ...

  4. java 耦合度_耦合度如何降低耦合度

    一.什么是耦合度 耦合度就是某模块(类)与其它模块(类)之间的关联.感知和依赖的程度,是衡量代码独立性的一个指标,也是软件工程设计及编码质量评价的一个标准.耦合的强度依赖于以下几个因素:(1)一个模块 ...

  5. 开发日记-20190417 关键词 代码之间耦合度的一刀两断 (思路篇)

    就目前而言,就我的理解,为什么要设计结构清晰的代码呢,因为结构清晰的代码往往耦合度很低,那为什么要降低代码之间的耦合度呢,当然是因为程序员是一种喜爱偷懒和害怕犯无意义错误的一种生物,那么该怎么办呢,无 ...

  6. java coin介绍_代码示例中的Java 7:Project Coin

    java coin介绍 该博客通过代码示例介绍了一些新的Java 7功能,这些项目在Project Coin一词下进行了概述. Project Coin的目标是向JDK 7添加一组小的语言更改.这些更 ...

  7. java电子日记本代码_计算法日记将规则的价值视为无需计算机的代码

    java电子日记本代码 I've been preparing a presentation for the Canadian Institute for the Administration of ...

  8. java 用程序代码解释继承_关于初级java程序员笔试题

    关于初级java程序员笔试题 Sun 认证Java程序员考试内容涉及Java所有相关知识.编程概念及applet开发技巧.下面是小编整理的关于初级java程序员笔试题,欢迎大家参考! 第一题:判断题 ...

  9. java三目运算符简化代码_如何使用传播运算符简化代码

    java三目运算符简化代码 by Matt Granmoe 通过Matt Granmoe 如何使用传播运算符简化代码 (How to simplify your code with the sprea ...

最新文章

  1. 关于模态对话框和非模态对话框的创建、显示,以及和父对话框的传值
  2. JavaScript常用DOM集合
  3. freeimage边缘检测
  4. Linux入门基础教程之Linux下软件安装
  5. leetcode 378. Kth Smallest Element in a Sorted Matrix
  6. 质量糟糕的代码会在项目中像病毒一样传播,尽量在源头控制好代码质量、强调范例的重要性...
  7. oracle查询注意点,oracle查询相关注意点
  8. C语言学习笔记---数组和指针的区别
  9. SAP License:SAP S/4 HANA模块功能介绍
  10. 如何用 Python 爬取网易云音乐的 10w+ 评论?附详细代码解读
  11. 项目管理方面的几个.NET开源项目
  12. AVC与H264 区别
  13. Android进阶之利用Tablayout+ViewPager+Fragment实现神奇的滑动效果
  14. C语言从入门到精通需要多久?你真的知道吗!
  15. 怎么把两个pdf合并成一个?pdf合并方法
  16. 我的世界服务器插件文件夹,各位大神服务器没有插件文件夹怎么办
  17. GAMES101 Lec6 反走样与深度缓冲
  18. 你也遇到JSONException:create instance error, null...问题啦?
  19. 计算机连接网络被限制,wifi连接被限制怎么办,教您wifi显示网络受限如何解决
  20. 十进制转化为二进制与十六进制显示(汇编程序)

热门文章

  1. awk - 数据分析和展示
  2. 阿里linux运维笔试,2020阿里巴巴笔试真题(含答案)
  3. Ubuntu-Touch-04:使用Xshell搭配Xftp对手机进行基本配置
  4. Creo/Proe 二次开发中使用 QT 编程流程
  5. 新手怎么做自媒体?自媒体是什么?
  6. 从三个角度进行疫苗数据分析
  7. Hive元数据的读取的两种方式
  8. FZU - 1683 纪念SlingShot
  9. 尚硅谷JavaWeb笔记——书城项目(第五阶段:图书模块(课程精华!!!!))
  10. 24岁小朋友,生日快乐!