这是软件工程中的概念
首先要知道一个软件是由多个子程序组装而成,
而一个程序由多个模块(方法)构成!
而内聚就是指程序内的各个模块之间的关系紧密程度,
偶合就是各个外部程序(子程序)之间的关系紧密程度.
所以很易明白,为什么要高内聚?模块之间的关系越紧密,出错就越少!低偶合?子程序间的关系越复杂,就会产生更多的意想不到的错误!会给以后的维护工作带来很多麻烦!
理解:
减少耦合首先要从判断什么是耦合开始,这个问题我们不会有太多的分歧。
我们都应该明白耦合不是不可避免的,所以完全的去耦合根本就不可能。而实际上任何的应用在现实中,以及在我的认识中都受到其他因素的影响。这也使我们的设计实际上根本就不可能完全的达到去耦合。于是我们可以从职责的细分开始,也就是让职责可以在一个合适的粒度上,这样这个粒度的职责就总是被调用,而不是去调用别人然后又被调用这样的互相紧密关联。
同时我们也要注意到去耦合根本就不只是一个存在于面向对象领域的特殊概念,而是在任何的方式下都存在的问题。我也要注意到去耦合所要解决的问题是更好的面对变更,或者说是更好的可以被扩展。忘记这两点,单纯的探讨去耦合是没有意义的。也就是说我们要认识到,如果你的程序需求完全的确定,不需要考虑变更,你为区耦合作出的努力根本就没有价值。而且去耦往往还意味着,对于运行效能的降低。而实际上去耦的同时往往可能会带来新的潜在的耦合。实际上这里还是要落实到你的程序段落的职责是不适很明确的问题。
而耦合会带来系统的关联钝化,让你很难确认你的关注点。这其实也带来了你去耦的难度。而这实际上还是你的系统职责不清稀带来的去耦隐患。你要做的还是明确各个部分的职责。
而说到最后,实际上情况非常简单,就是你明确你的系统的职责。这可以用单一职责规则来得到保障,也就是你的程序中一个要素变化的原因,就只能是一个,一个改变只能带来一个直接的结果。任何的去藕无非就是在这个原则下就职责和职责的原因以及后果进行细分和组织。
分享到:
相关推荐
在软件工程和系统设计领域,“高内聚低耦合”是一个至关重要的原则。这一原则强调的是如何有效地组织代码或模块,以提高系统的可维护性和扩展性。 #### 什么是高内聚? 高内聚指的是一个模块内部的功能紧密相关,...
### 软件开发中的问题:什么是高内聚、低耦合? 在软件工程领域,模块化设计是一种常见的策略,旨在提高代码的可维护性和可重用性。在这个过程中,“高内聚、低耦合”成为了衡量模块设计优劣的重要标准之一。下面将...
《高内聚低耦合软件架构的构建》这篇论文深入探讨了软件工程中的核心设计理念——高内聚与低耦合,这是构建高质量、可维护、易于扩展的软件系统的重要原则。高内聚指的是模块内部元素之间的紧密关联,而低耦合则意味...
### 图解高内聚与低耦合 #### 模块的概念 模块是在软件工程中用于组织和管理代码的一种方式,其基本思想是从逻辑上将系统分解成更小、更易于管理的部分。通过这种方式,可以将复杂的系统问题拆解成一系列相对简单的...
在软件工程中,高内聚和低耦合是衡量系统设计质量的重要原则。本文将深入探讨如何在C#环境中,通过一个学生管理系统的示例(demo)来实现这两个概念,并分析其中的关键技术。 首先,我们来理解“高内聚”和“低耦合...
在软件工程和系统设计领域,强内聚松耦合是两个至关重要的概念,它们不仅对代码质量和系统可维护性有着深远的影响,而且与软件测试密切相关。 #### 强内聚(Strong Cohesion) 强内聚指的是模块或组件内部各部分...
### 软件工程中的高耦合与低内聚 在软件工程领域,"高耦合、低内聚"是一个非常重要的概念。该概念强调了软件设计时各个组成部分之间的关系和交互方式。为了更好地理解这一概念,我们首先需要了解一些基本的定义。 ...
"软件工程高耦合低内聚知识点总结" 软件质量概念是指软件系统或系统中的软件部分的质量,既满足用户需求,也包括功能需求和性能需求的程度。软件质量应该从功能、易用性、外观、性能、可靠性、稳定性、安全性等方面...
在软件工程领域,耦合和内聚是衡量模块质量的两个关键指标,它们对系统设计的可维护性、可扩展性和可读性有着深远影响。本文将深入探讨这两个概念,并结合"耦合内聚.zip"中的文档内容进行详细阐述。 首先,耦合...
### 模块独立思维导图-耦合、内聚的种类 #### 一、概述 在软件工程领域中,为了确保软件系统具有良好的可...软件开发者应努力提高模块的内聚性,并尽可能降低耦合性,以构建出高质量、易维护和易于扩展的软件系统。
高内聚、低耦合是软件设计中的重要原则,旨在提高软件的可维护性和可读性。高内聚意味着模块内部的元素应该紧密相关,而低耦合意味着模块之间的依赖关系应该尽量减少。 九、软件工程的其他知识点 软件工程还包括...
* 划分模块时,尽量做到高内聚、低耦合,保持模块相对独立性 * 一个模块的作用范围应在其控制范围之内,且判定所在的模块应与受其影响的模块在层次上尽量靠近 * 软件的深度、宽度、扇入、扇出应适当 * 模块的大小要...
2004——2005学年第一学期期终试题 一、 选择题(10%) ...A: ①低内聚低耦合 ②低内聚高耦合 ③高内聚低耦合 ④高内聚高耦合 B、C: ①数据 ②非直接 ③控制 ④内容 D、E: ①偶然 ②逻辑 ③功能
0010软件工程 0010软件工程全文共16页,当前为第1页。0010软件工程全文共16页,当前为第1页。1、在人工智能领域,目前最广泛使用的高级语言是 ( )。 0010软件工程全文共16页,... 高内聚低耦合 0010软件工程全文共16
自顶向下的设计方法有助于建立软件系统的模块结构,而模块独立性的评价主要基于数据独立性、程序独立性和模块内聚性。模块设计应基于数据结构、处理结构、功能结构和控制结构,确保每个程序块具有单一的入口和出口。...
中科大高级软件工程复习...内聚度越高,软件模块内部元素之间的依赖关系越强。 代理模式 代理模式是指客户端通过代理间接地访问该对象,从而限制、增强或修改该对象的一些特性。代理模式可以降低模块与外部的耦合度。
在软件工程领域中,**高内聚**与**低耦合**是衡量系统设计质量的重要标准。高内聚指的是一个模块内部的功能高度相关,即模块内的各个部分紧密地协同工作以完成特定任务。低耦合则意味着各个模块之间的依赖关系较弱,...
6. **模块的内聚性**有七种类型,包括功能内聚、顺序内聚、通信内聚、过程内聚、时间内聚、逻辑内聚和偶然内聚,功能内聚是最强的内聚,偶然内聚是最弱的内聚。 7. **结构图**的深度是指结构图中最深层模块的数量,...
软件设计的目标是构造一个高内聚低耦合的软件模型,提高可靠性、可维护性、可理解性、效率等。 软件设计准则包括抽象化与逐步求精、模块化准则、信息隐蔽准则、模块独立性准则等。软件独立性的度量标准是两个定性...