我们常听一些厉害的程序员说过高内聚、低耦合,小伙伴们知道它们是什么意思吗?下面听小编为你解析一下。

什么是低耦合?

官方的说,耦合就是元素与元素之间的连接、感知与依赖量度。元素代表什么?这里的元素代指各种功能、对象、模块、系统、子系统。

例如:我们现在有方法A 1与A 2

这里我们要在A 1元素中去调用A 2元素,当A 2元素出现问题或不存在的时,A 1元素就不能正常的工作,那么就可以说A 1元素和A 2元素是耦合的。

耦合问题

我们知道,一个项目中如果必须依赖某一样东西,那这个项目就容易出问题。如:当元素A2变更或不存在时,都会影响到元素A 1的正常运作,极大的影响了系统的可维护性与易变更性。同时元素A 1只能运行在元素A2中,这也大大的降低了A 1元素的可复用性。正因为耦合的种种弊端,因此我们才需要在软件设计上尽量追求低耦合。

如何做到低耦合?

一个元素不能够过度依赖其他元素

职责合理划分:让系统中的对象各司其职,不仅是提高内聚的要求,同时也可以有效的低耦合。

尽量使用接口而不是继承:其实实际的说,继承也是一种耦合,如:子类A继承父类B,不管是直接继承还是间接继承,一但父类B不存在或者发生了其他变数,子类A就不得不修改或重写。如若父类B的子类有数十上百,就可以说是灾难性的变更了。

什么是高内聚?

高内聚通俗的说就是一个评判软件设计质量的标准。在业界里,内聚比较专业的叫法是功能内聚,意思是对系统中元素职责的相关性和集中度的量度。如果这个元素有高度的相关职责,并且除了这些职责外再没有其他工作,那么这个元素就是高内聚的。

例如:

这就好像,如果我是一个老师,我的职责就是教育与帮助我的学生完成各个阶段的学习任务。当学生有什么学习问题,我就能够根据问题告诉她相应的的解决方法,但如果我跟她们一起学习的话,我就不是一个高内聚的元素了,因为学习并不是我的职责。

为什么要高内聚?

因为它拥有程序最需要的高可读、高复用、高可维护性和高易变更性。

这就是文章的所有内容了,如果想要学习java,这种类似的java基础思想是不可或缺的,希望本篇文章对你理解java的思想有所帮助。

推荐阅读:

java高内聚低耦合什么意思_高内聚低耦合什么意思?合理通俗解释相关推荐

  1. 频率计的交流耦合和直流耦合的区别_示波器DC/AC耦合设置及影响

    点击上方"电磁兼容检测",马上关注 示波器DC/AC耦合设置及影响 摘要:介绍了示波器的DC/AC耦合设置及其影响. 耦合指把电信号从一条电路连接到另一条电路使用的方法.在这种情况 ...

  2. 公办低分二本_分数较低的大学,400分的公办二本!

    分数较低的二本大学 [图文] 20192020年985最低分数线的大学汇总_大学生必备网 推荐您搜索:400分的高考理科考生只能报考独立学院了,也就是原来的三本院校.三本院校合并到二本批次招生后,原来 ...

  3. 高通骁龙cpu排行_高通骁龙865深度解读:CPU、GPU、内存全新升级

    12月3日的2019年骁龙技术峰会上,高通正式发布了骁龙865移动平台,这是高通第二代5G平台了,相比骁龙855平台有着全方位的升级,工艺.架构.能效及5G等方面再上一层楼. 业界权威网站Anande ...

  4. 低代码开发平台_什么是低代码和无代码开发平台?

    低代码/无代码开发平台是一种可视化软件开发环境,允许公民开发人员拖放应用程序组件,将它们连接在一起并创建移动或Web应用程序.这种模块化方法使专业开发人员可以免除他们逐行编写代码的需要,从而更快地构建 ...

  5. java高内聚低耦合什么意思_高内聚低耦合的理解

    在做rm比赛的过程中,发现文件和函数的代码规范逻辑十分重要,这不仅影响到自己看代码的方便与否,还影响到下届队员对我的代码的理解.因此打算开始规范自己的代码习惯,养成良好习惯,以后工作也能用上. 以下转 ...

  6. 高阶低通滤波算法_高/低算法

    高阶低通滤波算法 介绍 在我以前的文章中,我谈到了各种数据库标识符策略,在设计数据库模型时需要注意. 我们得出的结论是,数据库序列非常方便,因为它们在大多数用例中既灵活又高效. 但是,即使具有缓存的序 ...

  7. 高并发内存占用持续下降_高并发性能调试经验分享

    引文 4月份的时候看到一道面试题,据说是腾讯校招面试官提的:在多线程和高并发环境下,如果有一个平均运行一百万次才出现一次的bug,你如何调试这个bug?知乎原贴地址如下:腾讯实习生面试,这两道题目该怎 ...

  8. 高通的快充协议_高通:后续骁龙旗舰将标配100W快充

    高通于昨晚正式推出了Quick Charge 5充电解决方案,经过3年时间的准备,高通这一次在Quick Charge快充的升级可谓重磅,在功率上实现了重大突破,达到了100W. 官方数据显示,高通Q ...

  9. 廖雪峰讲python高阶函数求导公式_高阶函数 - 廖雪峰 Python 2.7 中文教程

    高阶函数英文叫Higher-order function.什么是高阶函数?我们以实际代码为例子,一步一步深入概念. 变量可以指向函数 以Python内置的求绝对值的函数abs()为例,调用该函数用以下 ...

最新文章

  1. Android 获取apk签名的fingerprint
  2. MyBatis学习总结(八)——Mybatis3.x与Spring4.x整合
  3. 数字身份的一些应用和方案
  4. 【统计学习】参数估计
  5. oracle 分组后取每组第一条数据
  6. 索引失效的场景(面试)
  7. 跳槽上班第一天的感受
  8. 答复审稿人的10条简易法则,你都学会了吗?
  9. 外媒:苹果聘请更多司机在加州测试其自动驾驶汽车
  10. 从Linux基础到k8s进阶,马哥_K8s进阶实战(11)Kubernetes系统扩展
  11. .net面试中常被面试官问到的问题
  12. Ubuntu下Jlink驱动安装使用
  13. ong拼音汉字_拼音ong到底怎么读?
  14. MySQL理解索引、添加索引的原则
  15. 计算机平均工资公式数值型,平均工资的计算方式
  16. python使用matplotlib画折线图(详细)
  17. Android 时间显示控件 TextClock
  18. 北京计算机游戏专业排名2015,2015大学专业排行榜_大学最佳专业排行榜_游戏专业怎么样_52PK游戏网...
  19. python标准库复数运算包cmath
  20. Spring-JdbcTemplate环境搭配及基本功能

热门文章

  1. day037 listener Timer 发送邮件工具类
  2. Agricultural Sprayer 农用喷雾机谷歌Google搜索量和海外市场竞争度分析
  3. MATLAB实现Dijkstra最短路算法
  4. 基于nodejs爬虫
  5. Unity之ASE实现正反面面具
  6. 用Python爬取了《扫黑风暴》数据,并将其可视化分析后,终于知道它为什么这么火了~...
  7. 计算机图形学笔记十一:Ray Tracing1(阴影,光线追踪基本原理)
  8. CSS入门七、CSS3新特性
  9. puppet学习(一)
  10. Bootstrap使用样式引用步骤,以防掉坑