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

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

阅读更多

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

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

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

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

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

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

 

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

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

 

 

 

    图二:

 

 

 

 

 

    

 

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

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

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

 

分享到:
评论

相关推荐

    Java面向对象程序设计与系统开发项目编码实现PPT教案学习.pptx

    本资源是关于 Java 面向对象程序设计与系统开发项目编码实现的教学 PPT,旨在帮助学生理解高内聚低耦合的项目结构设计、JDBC 底层类的实现、数据库操作工具类的设计和实现等知识点。 一、高内聚低耦合的项目结构...

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

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

    利用UML类图设计Java应用程序详解.doc

    1. 高内聚、低耦合:类之间的关系应该是松散的,避免紧耦合。 2. 单一职责原则:每个类应该只有一个明确的职责。 3. 开闭原则:类应该对扩展开放,对修改关闭。 4. 李氏替换原则:子类可以替换父类。 UML类图在Java...

    初步认识JAVA+DAO设计模式.doc

    该模式的主要思想是将数据访问和业务逻辑分离,实现松耦合和高内聚度的程序设计。 在 JAVA 编程中,有时候看起来非常直接的实现却非要用设计模式转假设干个弯去实现他,但是采用一些成熟的设计模式,会使程序更加的...

    java二手房销售系统的设计与实现毕业论文.docx

    系统的设计与实现也体现了MVC模式的优点,包括低耦合、高内聚、灵活性强等。 Java二手房销售系统的设计与实现毕业论文是基于Java技术的毕业设计,旨在解决当前二手房销售机构信息管理过程中的问题。该系统的设计与...

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

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

    Java EE设计模式:Spring企业级开发最佳实践

    4.MVC Pattern:模型视图控制器模式,分离应用程序的关注点,实现高内聚、低耦合的设计。 在 Spring 中,MVC 模式是框架的核心部分,提供了一个松耦合的架构,开发者可以根据需要选择不同的视图技术和模型来实现...

    springboot+vue基于java的点餐系统的设计与实现论文.docx

    基于 B/S 架构模式,我们将使用 Java 语言和 MySQL 数据库对系统进行高内聚低耦合的设计。 系统模块设计 根据需求分析结果,我们将点餐系统划分为管理员和用户两种角色和多个主要模块:用户、美食信息、留言板、...

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

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

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

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

    Java面试题、面经.pdf

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

    输出MVC设计模式中MVC分别代表什么意思以及在java中的具体体现1

    * 高内聚:每个部分都有明确的职责,提高了系统的内聚性和可读性。 * 灵活性高:MVC设计模式使得系统具有很高的灵活性,可以根据需要轻松地更改或替换某个部分。 MVC设计模式在Java中的应用 MVC设计模式广泛应用于...

    java学生考试成绩分析

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

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

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

    常见java八股文面试题

    其中,面向对象是Java最重要的特性,能够使得程序耦合度更低,内聚性更高。 二、面向对象和面向过程的区别 面向对象和面向过程是两种不同的编程方式。面向过程是字面意义上就是面向的是过程,把构成问题的事务分解...

    俄罗斯方块游戏(Java)

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

    2023年面向对象程序设计训练题目.doc

    区分层次的目的即为了“高内聚,低耦合”的思想。每层之间是一种垂直的关系,下层代码未拟定其接口(契约)前,上层代码是无法开发的,下层代码接口(契约)的变化将使上层的代码一起变化。优点:分工明确。

    2023java最新面试资料汇总

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

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

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

    spring5教程资料.txt

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

Global site tag (gtag.js) - Google Analytics