`
懒人小五
  • 浏览: 41517 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
文章分类
社区版块
存档分类
最新评论

Java程序设计关于低耦合与高内聚理念

阅读更多

      熟悉Java的人都知道Java程序设计时,为了避免程序的冗杂,减少各个类之间的依耐性,经常使用低耦合和高内聚的设计理念。

      所谓耦合是指在一个软件结构内不同模块之间互连程度的度量,

       而低耦合就是指在设计一个软件时,作为一个完整的软件系统,对于各种模块与模块之间应尽可能的是其独立的存在,让每个模块尽可能的独立完成其特定的功能。

       如果某两个模块间的关系比较复杂的话,最好首先考虑进一步的模块划分。这样有利于修改和组合。

     所谓内聚是指一个模块内各个元素彼此结合的紧密程度。而高内聚就是指在一个模块的内部,应该尽可能的让每个元素都紧密的相连。

        也就是充分利用每一个元素的功能,各施所能,以最终实现某个功能。
      如果某个元素与该模块的关系比较疏松的话,可能该模块的结构还不够完善,或者是该元素是多余的。

 

     例如以下有四个类,分别有两种设计方法 ,如图:

    图一:           在该图中    各个类之间呈网状引用结构,如果写代码时也是这种结构,那么不仅会使代码很难理解,而且不容易使读者理解,更重要的时,无法继续在上面扩展代码,即你更改某一个类的元素时,同时也会影响到其他的类,因为他们之间的依耐性很高,所谓的“牵一发而动全身”就是指的这个意思。

 

 

 

    图二:

 

 

 

 

 

    

 

  在该图中,我们可以看到类C,B,A都只是为D所用,所以他们相互之间是独立的,在我们修改代码时:比如我们修改类C中的代码,那就不会影响到类B和类A,这样,只要采用这种星状结构,不论我们的软件有多么的庞大,我们在修缮代码时也不会有太多的麻烦。

   内聚耦合,包含了横向和纵向的关系。功能内聚和数据耦合,是我们需要达成的目标。横向的内聚和耦合,通常体现在系统的各个模块、类之间的关系,而纵向的耦合,体现在系统的各个层次之间的关系。

        高内聚和低耦合是软件工程设计的一种原则,是写代码时要遵循的一种规范。

 

分享到:
评论

相关推荐

    论文研究-一种改进的基于层次聚类的软件重构技术研究.pdf

    为了改善Java源程序的质量,使之尽可能地符合“高内聚、低耦合”的设计要求,提出了扩展的Jaccard系数,并将其作为实体间相似性的度量公式,采用层次聚类算法将Java类图划分为若干个候选包。在基于交互及度量重构...

    互联网大厂Java面试专题汇总.zip

    2、面向对象(Java最重要的特性,让程序耦合度更低,内聚性更高) 3、与平台无关性(JVM是Java跨平台使用的根本) 4、可靠安全 5、支持多线程 2、面向对象和面向过程的区别 面向过程:是分析解决问题的步骤,然后用...

    基于JAVA设计的看房销售系统--完整源码.zip

    主要的研究方法:有面向对象的开发方法研究方法采用面向对象的设计开发方法进行系统的分析与实施,把系统各个独立运行的模块分别开发,使得模块内与模块间高度向高内聚低耦合靠拢。各模块采用服务器集群部署,使得...

    基于JAVA的网络通讯系统设计与实现

    (2) 合理的数据流设计,在应用系统设计中,相对独立的模块间以数据流相互连接,使各模块间的耦合性较低,方便系统运行,提高系统安全性,尽量保证低耦合,高内聚。 (3) 采用封装的思想,根据模块的不同情况进行类的...

    Java面试题、面经.pdf

    2、面向对象(Java最重要的特性,让程序耦合度更低,内聚性更高) 3、与平台无关性(JVM是Java跨平台使用的根本) 4、可靠安全 5、支持多线程 2、面向对象和面向过程的区别 面向过程:是分析解决问题的步骤,然后用...

    java学生考试成绩分析

    设计时,应力求提高模块的内聚程度,降低模块间的耦合程度。 学生成绩分析管理系统此标准可分为用户登陆、输入数据、查询数据、统计数据、系统维护等五个子模块。后四个模块下各有相应的子模块。

    Java+access数据库+综合评测系统+毕业设计+源码

    同时,本系统的开发采用了面向对象的方法,将系统划分模块时,尽量做到高内聚低耦合,提高模块独立性,给模块功能的增加与修改带来了方便。前台采用可移植性良好,健壮,安全性高的Java语言开发,后台采用微软的...

    俄罗斯方块游戏(Java)

    该俄罗斯方块游戏是基于Java开发,借鉴了MVC的设计模式,通过建立模型类、游戏规则类和画图类、使程序流程更加清晰,并且程序具有强内聚、松耦合的特性,保证了功能扩展的方便性。另外该游戏对于开发类似的GUI游戏有...

    2023java最新面试资料汇总

    2、面向对象(Java最重要的特性,让程序耦合度更低,内聚性更高) 3、与平台无关性(JVM是Java跨平台使用的根本) 4、可靠安全 5、支持多线程 2、面向对象和面向过程的区别 面向过程:是分析解决问题的步骤,然后用函数...

    Move-Class-Refactoring-Tool:本文凭论文的目的是开发一种用于量化封装级内聚和耦合的方法,以便提出解决方案以提高面向对象系统的设计质量

    该文凭论文的目的是开发一种用于量化封装级内聚和耦合的方法,以便提出解决方案以提高面向对象系统的设计质量。 封装中类的一致性一旦促进了封装,便是可取的。 它显示了每个程序包中的功能多么强大。 结构良好的...

    spring5教程资料.txt

    多的是关注如何使这些对象协作来完成所需功能,而且要低耦合、高内聚。业务逻辑开发是不可避免的,那如果有个框架出来帮我们来创建对象及管理这些对象之间的依赖关系。可能有人说了,比如“抽象工厂、工厂方法设计...

    程序优化.pptx

    高内聚,低耦合 5.程序优化的策略 1。设计优化 单例模式 代理模式 缓存 负载均衡 2。代码优化 算术优化 一般代码优化 3。容器优化 JVM优化配置 Tomcat优化配置 4。数据库优化 1.减少数据访问 索引 sql的执行...

    基于JAVA班主任管理系统的毕业设计,系统采用了MVC三层架构,分为视图层、控制层和模型层 视图层使用JSP技术实现,控制层使用

    系统采用了分层设计,实现了高内聚低耦合,扩展性和维护性较高。通过对学生信息、课程信息、教师信息的管理,实现了对班级的有效管理,为学校管理提供了有力支撑。系统采用了分层设计,实现了高内聚低耦

    java_jsp项目源码_+mysql在线考试系统论文.rar

    该在线考试系统采用了分层架构设计,包括数据访问层、业务逻辑层和表示层,以实现高内聚、低耦合的设计理念。系统采用了MySQL数据库存储数据,支持数据的增删改查操作,并提供了丰富的数据报表和图表展示功能,帮助...

    毕设之weixin微信小程序跑腿平台的设计与实现ssm--(源码+部署说明+SSM+微信小程序+vue).zip

    SSM框架具有模块化、低耦合、高内聚的特点,有利于提高开发效率和代码质量。 2. 微信小程序:微信小程序是一种轻量级的移动应用,无需下载安装即可使用。通过微信小程序,用户可以方便地访问跑腿平台,进行下单、...

    计算机毕业设计源码,大学生校园运动会活动策划源码设计解析

    在源码中,我们使用了MVC设计模式对应用程序进行了分层设计,使得程序具有高内聚、低耦合的特性。同时,我们还使用了JUnit进行单元测试,保证了程序的可靠性和稳定性。 总的来说,该源码是一份具有实用价值的毕业...

    Java应用软件的安全加固技术研究_刘伟伟.caj

    本文针对上述安全问题展开分析研究工作,设计了一种新的隐藏 方法描述符的途径,通过消除对...表明本文提出的混淆方案除了各自应有的特性之外,还兼具增强内聚 性、减少耦合性、增大方法平均复杂度等效果。

    基于vue前台、java后台、mysql实现的档案管理系统源码+部署说明.zip

    以每张表作为一个单独的模块进行抽象,按照高内聚低耦合的设计原则进行模块的设计划分。 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业...

    JAVA核心技术

    为了实现“高内聚、低耦合”。把问题划分开来各个解决,易于控制,易于延展,易于分配资源…总之好处很多啦:)。??3.以下所述主要是JAVA,J2EE方面的模式和框架:??常见的设计模式有什么???首先,你要了解的是GOF...

    高级java笔试题-JavaInterview:Java面试整理,涵盖基础、JVM、线程并发、框架、MySQL、微服务、Redis、中间件、数

    2、面向对象(Java最重要的特性,让程序耦合度更低,内聚性更高) 3、与平台无关性(JVM是Java跨平台使用的根本) 4、可靠安全 5、支持多线程 2、面向对象和面向过程的区别 面向过程:是分析解决问题的步骤,然后用...

Global site tag (gtag.js) - Google Analytics