`
- 浏览:
691590 次
-
内聚:一个模块内各个元素彼此结合的紧密程度
耦合:一个软件结构内不同模块之间互连程度的度量
最近编码的时候,总是在犹豫是把某个方法封装在一个类里,还是单独的封装成一个类。这让我突然想起内聚耦合这两个名词。
我们一直追求着,高内聚,低耦合。
对于低耦合,我粗浅的理解是:
一个完整的系统,模块与模块之间,尽可能的使其独立存在。
也就是说,让每个模块,尽可能的独立完成某个特定的子功能。
模块与模块之间的接口,尽量的少而简单。
如果某两个模块间的关系比较复杂的话,最好首先考虑进一步的模块划分。
这样有利于修改和组合。
对于高内聚,我粗浅的理解是:
在一个模块内,让每个元素之间都尽可能的紧密相连。
也就是充分利用每一个元素的功能,各施所能,以最终实现某个功能。
如果某个元素与该模块的关系比较疏松的话,可能该模块的结构还不够完善,或者是该元素是多余的。
内聚和耦合,包含了横向和纵向的关系。功能内聚和数据耦合,是我们需要达成的目标。横向的内聚和耦合,通常体现在系统的各个模块、类之间的关系,而纵向的耦合,体现在系统的各个层次之间的关系。
对于我在编码中的困惑,我是这样想的,用面向对象的思想去考虑一个类的封装。
一个方法,如何封装,拿到现实生活中来看,看这种能力(方法)是否是属于这类事物(类)的本能。
如果是,就封装在这个类里。
如果不是,则考虑封装在其它类里。
如果这种能力,很多事物都具有,则一定要封装在这类事物的总类里。
如果这种能力,很多事物都会经常用到,则可以封装成一个总类的静态方法。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
该文档主要讲解了高内聚低耦合的相关知识,希望能给你带来帮助!
android高内聚低耦合任务事件总线框架
高内聚低耦合理解,系统的文字帮助你更快速的理解
大牛思想(高内聚低耦合).pdf
android高内聚低耦合任务事件总线框架 修复任务达800左右时候,更新UI层报错问题。
一个学生管理系统的demo 高内聚 低耦合 所有对象都是用工厂反射出来的 全部用接口实现
spring 底耦合高内聚
本项目的图书管理系统,具有一个基本的图书管理系统都有的功能,但是与普通管理系统相比,该系统基于MVC架构分层构建,扩展性强,高内聚低耦合, 数据持久化上采用cushy-storage进行文件存储,大大减少文件操作的...
软件系统的设计思想和原则、设计 方法、系统架构及体系结构、设计模式、运行平台、 开发工具等方面进行综合考虑和合理取舍。
软件开发中的问题什么是高内聚低耦合?起因模块独立性指每个模块只完成系统要求的独立子功能并且与其他模块的联系最少且接口简单两个定性的度量标准――耦合性和内聚性。耦合Coupling是模块之间依赖程度的度
耦合主要描述模块之间的关系, 内聚主要描述模块内部. 模块的粒度可大可小, 可以是函数, 类, 功能块等等. # 耦合 模块之间存在依赖, 导致改动可能会互相影响, 关系越紧密, 耦合越强, 模块独立性越差. 比如模块A直接...
耦合度就是某模块(类)与其它模块(类)之间的关联、感知和依赖的程度,是衡量代码独立性的一个指标,也是软件工程设计及编码质量评价的一个标准
描述强内聚、松耦合与它们分别与测试的关系
“设计原则千万条,高内聚低耦合第一条,架构设计不规范,开发运维两行泪!”。在分布式架构下,单体应用被拆分为多个微服务,为了保证微服务的单一职责和合理拆分,“高内聚、松耦合”是最宝贵的设计原则。通俗点讲...
主要介绍了高内聚低耦合法则实例代码解析,具有一定借鉴价值,需要的朋友可以参考下。
2004——2005学年第一学期期终试题 一、 选择题(10%) ...A: ①低内聚低耦合 ②低内聚高耦合 ③高内聚低耦合 ④高内聚高耦合 B、C: ①数据 ②非直接 ③控制 ④内容 D、E: ①偶然 ②逻辑 ③功能
C)低内聚高耦合 B)高内聚低耦合 D)高内聚高耦合 (6)下列选项中不属于结构化程序设计原则的是( )。 A)可封装 B)自顶向下 C)模块化 (7)软件详细设计产生的图如下: begin Y N D)逐步求精
耦合内聚.doc
这是一个可拓展的对内封闭的...在软件、程序设计的时候,追求的目标是达到封装变化、降低耦合,来实现高内聚低耦合。开放封闭原则正是对这一目标的最直接体现,而其他的设计原则,很多时候也是为实现这一目标服务的。