`

概念 高内聚低耦合

 
阅读更多

高内聚低耦合,是软件工程中的概念,是判断设计好坏的标准,主要是面向对象的设计,主要是看类的内聚性是否高,耦合度是否低。
耦合性:也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息
内聚性:又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语名之间、程序段之间)联系的越紧密,则它的内聚性就越高。
所谓高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。
耦合:一个软件结构内不同模块之间互连程度的度量。
对于低耦合,粗浅的理解是:一个完整的系统,模块与模块之间,尽可能的使其独立存在。也就是说,让每个模块,尽可能的独立完成某个特定的子功能。模块与模块之间的接口,尽量的少而简单。如果某两个模块间的关系比较复杂的话,最好首先考虑进一步的模块划分。这样有利于修改和组合。

 

拓展阅读:高内聚低耦合是矛盾的吗?
我觉得不矛盾。高内聚是说模块内部要高度聚合,低耦合是说模块与模块之间的藕合度要尽量低。前者是说模块内部的关系,后者是说模块与模块间的关系。

 

看了问题的评论,感觉你如果想说服另外几个程序员,那么你确实应该把他们的观点先列出来。
从大自然来看,高内聚低耦合也是必然的啊。
你的消化系统和排泄系统,如果不是高内聚低耦合的,你试试看?

高内聚是模块功能的专一性高,独立性。
低耦合是模块之间的联系尽量少,尽量简单。
这句话描述模块设计的两个方面,不矛盾。

 

以下回答虽然略有不雅,但更方便理解。。。
多和自己老婆沟通交流培养感情(高内聚)
少撩别人家的大姑娘小媳妇儿(低耦合)
矛盾吗?

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    信息隐藏的主要概念

    信息隐藏、数字水印、隐写的概念以及一些算法

    06-分析与设计概念-解耦与内聚.mp4

    解耦与内聚的概念,是用来描述系统设计原则的属性,给出了系统形成应该遵循哪些原则和标准,是分析和设计模块化产品、平台化产品的基础概念。

    论文研究-模块化思想在大规模本体匹配中的应用.pdf

    然后,改进了ROCK聚类算法,并使用该算法将概念图划分成若干高内聚低耦合的概念块;最后,根据Tversky模型,从概念的父、子、兄弟以及内涵4个方面计算块的匹配度,并标记块的重要概念,进行n∶m匹配。实验结果表明,...

    湖南文理学院uml模拟考试试卷及答案*(附详细解析)

    1. 用例(Use case)用来描述系统对事件作出响应时所采取的行动。用例之间是具有相关性的。在一个“订单输入子系统”中,创建新订单和更新订单都需要核查用户帐号是否正确。... 低内聚、高耦合的特征

    [详细完整版]30软件工程.doc

    南京信息工程大学 软件工程导论期中 得分 院 专业 年级 班次 姓名 学号 一.选择题(10*2') 1、软件危机出现于____,为了解决软件危机,人们提出了用___... A、耦合越强 B、扇入数越高 C、耦合越弱 D、扇入数越低 8、软

    什么是系统的三层架构?

    目的是“高内聚,低耦合”的思想。  一、概念:  三层架构(3-tierarchitecture)通常是指将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。目的是“高内聚,低耦合”的思想。  1、表现层(UI)...

    面向对象设计原则

    掌握内聚度和耦合度的概念 掌握面向对象设计原则

    数据库架构设计.pdf

    应⽤架构设计有⼏个核⼼的原则: 开放-封闭原则:即对扩展开放,对修改封闭 ⾼内聚低耦合原则:尽量将功能相关的内容组合在⼀起,封装后对外提供接⼝。 封装变化原则:越是可能发⽣变化的地⽅越要进⾏处理和封装,将...

    基于《 软件工程导论(第6版)》张海藩的课件PPT+实验报告+复习提纲

    PPT主要内容: 第1章 软件工程学概述 第2章 可行性研究 第3章 需求分析 第4章 形式化说明技术 第5章 总体设计 第6章 详细设计 ...(二)、体验模块化概念、模块耦合概念、模块内聚概念体验、编码风格规范化概念

    软件工程复习提纲

    1.5 内聚(功能内聚) 2.设计的任务 3.程序的一般结构 4.软件体系结构(变换型、事务型) 三、软件测试 1.测试的目的、原则和对象 2.测试用例设计 2.1 白盒测试(语句覆盖、判定覆盖) 2.2 黑盒测试...

    java8源码-JUC:日常使用进程/线程的案例或者case

    2,高内聚 低耦合 始终记得:多个线程操作同一个资源类 代码编写 资源类(实例变量+实例方法) class Ticket{ private int number = 30; // 引入java.util.concurrent.locks private Lock lock = new ReentrantLock(); ...

    基于Openbiz 让PHP实现极致业务逻辑重用 pdf

    前文《Openbiz 实现 PHP的元数据编程》曾提及过通过元数据(Metadata)来描述极致化描述业务逻辑,其精髓在于高内聚、低耦合的极致抽象思想。本文我们将讲解如何通过这种思路实现极致的业务逻辑重用。  构建于Zend之...

    计算机二级考试试题计算机二级考试试题

     C) 避免滥用goto语句 D) 模块设计要保证高耦合、高内聚  (2)从工程管理角度,软件设计一般分为两步完成,它们是  A) 概要设计与详细设计 B) 数据设计与接口设计  C) 软件结构设计与数据设计 D) 过程...

    基于.NET的社区便利商店APP后台管理的设计与实现

    社区这个概念出现在互联网时,社区便利商店APP也进入了迅速发展...采用加盟商关联到用户低耦合高内聚的试验原则,在一定程度上降低了配送成本,提高了后台的管理性,也实现了双赢的原则,具有一定的创新点和使用价值。

    1数据库程序设计.doc

    " " " "(1)下列选项中不符合良好程序设计风格的是 " "A) 源程序要文档化 B) 数据说明的次序要规范化 " "C) 避免滥用goto语句 D) 模块设计要保证高耦合、高内聚 " " " "(2)从工程管理角度,软件设计一般分为...

    Java分层架构

    区分层次的目的即为了“高内聚,低耦合”的思想。  概念简介  1、表现层(UI):通俗讲是展现给用户的界面,即用户在使用一个系统的时候他的所见所得。  2、业务逻辑层(BLL):针对具体问题的操作,也可以说是对...

    ng4StarterKit:使用Angular构建大型Web应用程序的简介

    应用模式意味着高内聚和低耦合。 我们将业务逻辑分成具有不同职责的层。前端耦合到MVC Angular 的构建块允许我们将企业软件模式应用于前端设计系统: Angular 通过采用 TypeScript 包含模型视图控制器 (MVC) 模式和...

    计算机二级公共基础知识

    1. 算法的基本概念 利用计算机算法为计算机解题的过程实际上是在实施某种算法。 (1)算法的基本特征 算法一般具有4个基本特征:可行性、确定性、有穷性、拥有足够的情报。 (2)算法的基本运算和操作 算法的基本...

    设计模式详解

    内聚、耦合的概念设计模式设计模式的原则单一职责原则用户管理电话通话开放-封闭原则书店例子开闭原则对测试的影响。怎么使用开闭原则银行例子里氏代换原则枪的例子长方形和正方形的例子合成聚合复用原则手机例子...

    软件工程知识点

    在进行概要设计时,模块的独立性是一个有关质量的重要技术性指标,可以使用模块的内聚、耦合这两个定性参数对模块独立性进行度量。 2.软件详细设计 设计工作的第二步是详细设计,它以概要设计为依据,用于确定软件...

Global site tag (gtag.js) - Google Analytics