高内聚低耦合,是软件工程中的概念,是判断设计好坏的标准,主要是面向对象的设计,主要是看类的内聚性是否高,耦合度是否低。

高内聚低耦合造价信息

市场价 信息价 询价
材料名称 规格/型号 市场价
(除税)
工程建议价
(除税)
行情 品牌 单位 税率 供应商 报价日期
光电耦合器端子 OBIC0100 115-230VAC/DC (R600)材质:一级; 查看价格 查看价格

ABB

13% 西安亚欧电器自动化有限公司
光电耦合器端子 OBOC1000 5-12VDC (R600)材质:HPB300; 查看价格 查看价格

ABB

13% 西安亚欧电器自动化有限公司
光电耦合器端子 OBOC1500 24VAC/DC (R600) 查看价格 查看价格

ABB

13% 西安亚欧电器自动化有限公司
光电耦合器端子 OBOC1000 115VAC/DC (R600)材质:一级; 查看价格 查看价格

ABB

13% 西安亚欧电器自动化有限公司
光电耦合器端子 OBROC1500 24VAC/DC (R600) 查看价格 查看价格

ABB

13% 西安亚欧电器自动化有限公司
耦合式密封阀 查看价格 查看价格

巢福

13% 湖州巢福建筑制品有限公司
耦合式密封阀 - 查看价格 查看价格

13% 湖州巢福建筑制品有限公司(湖州厂商期刊)
光电耦合器端子 OBIC0100 48-60VAC/DC (R600) 查看价格 查看价格

ABB

13% 西安亚欧电器自动化有限公司
材料名称 规格/型号 除税
信息价
含税
信息价
行情 品牌 单位 税率 地区/时间
卷扬机架(单笼5t) 架高40(m) 查看价格 查看价格

台班 韶关市2010年8月信息价
卷扬机架(单笼5t) 架高70(m) 查看价格 查看价格

台班 韶关市2010年8月信息价
卷扬机架(单笼5t) 架高100(m) 查看价格 查看价格

台班 韶关市2010年8月信息价
2、输送泵车单价:县城10km范围4000元/台班. 查看价格 查看价格

肇庆市广宁县2010年4季度信息价
载重汽车 4T 查看价格 查看价格

台·月 深圳市2011年12月信息价
载重汽车 6T 查看价格 查看价格

台·月 深圳市2011年11月信息价
水平钻机 直径100 查看价格 查看价格

台班 韶关市2010年8月信息价
机动翻斗车 1.5T 查看价格 查看价格

台·月 深圳市2011年11月信息价
材料名称 规格/需求量 报价数 最新报价
(元)
供应商 报价地区 最新报价时间
打灯布 打灯布|3600m² 1 查看价格 广东莞彩广告有限公司 广东  阳江市 2021-06-07
功率耦合器10dB 功率耦合器10dB|7个 2 查看价格 深圳英智源智能系统有限公司 全国   2022-07-19
功率耦合器15dB 功率耦合器15dB|11个 2 查看价格 深圳英智源智能系统有限公司 全国   2022-07-19
功率耦合器20dB 功率耦合器20dB|1个 2 查看价格 深圳英智源智能系统有限公司 全国   2022-07-19
功率耦合器07dB 功率耦合器07dB|7个 2 查看价格 深圳英智源智能系统有限公司 全国   2022-07-19
功率耦合器05dB 功率耦合器05dB|3个 2 查看价格 深圳英智源智能系统有限公司 全国   2022-07-19
数据格式定义工具 系统需可提供用户自定义参数设置、自定义报表、自定义数据库|1套 3 查看价格 深圳新基点智能股份有限公司 广东   2018-11-16
自动耦合泵导轨 自动耦合泵导轨|11台 2 查看价格 东莞市江洋机电有限公司 广东   2022-11-04

在软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。划分模块的一个准则是高内聚低耦合。从模块粒度来看,高内聚:尽可能类的每个成员方法只完成一件事(最大限度的聚合); 低耦合:减少类内部,一个成员方法调用另一个成员方法。从类角度来看, 高内聚低耦合:减少类内部,对其他类的调用;从功能块来看 高内聚低耦合:减少模块之间的交互复杂度(接口数量,参数数据)即横向:类与类之间、模块与模块之间;纵向:层次之间;尽可能,内容内聚,数据耦合。

降低耦合度的方法

1、少使用类的继承,多用接口隐藏实现的细节。 Java面向对象编程引入接口除了支持多态外, 隐藏实现细节也是其中一个目的。

2、模块的功能化分尽可能的单一,道理也很简单,功能单一的模块供其它模块调用的机会就少。(其实这是高内聚的一种说法,高内聚低耦合一般同时出现)。

3、遵循一个定义只在一个地方出现。

4、少使用全局变量。

5、类属性和方法的声明少用public,多用private关键字。

6、多用设计模式,比如采用MVC的设计模式就可以降低界面与业务逻辑的耦合度。

7、尽量不用“硬编码”的方式写程序,同时也尽量避免直接用SQL语句操作数据库。

8、最后当然就是避免直接操作或调用其它模块或类(内容耦合);如果模块间必须存在耦合,原则上尽量使用数据耦合,少用控制耦合,限制公共耦合的范围,避免使用内容耦合。

增强内聚度方法

1、模块只对外暴露最小限度的接口,形成最低的依赖关系。

2、只要对外接口不变,模块内部的修改,就不得影响其他模块。

3、删除一个模块,应当只影响有依赖关系的其他模块,而不应该影响其他无关部分。

架构是指可以预制和重构的软件框架结构。普遍指通过某种特定平台,而达到完成整体软件的功能。架构设计是指对软件、硬件、网络、运营、政策等软件设计中的需求和要素进行决策,主要包括体系结构设计和各个层的模块设计。架构设计目标有个能够最大化的重用。首先,要在架构的设计中灵活地使用各种共享的,特别是开源的框架技术因为共享的架构可以方便开发组分解问题,从而对项目中的功能模块分为需要内部解决和使用已有外部服务两类,避免了重复开发实现。其次,尽量使用成熟的框架。由于服务器端软件系统的开发,涉及的知识、内容、要解决的技术问题很多,在某些方面使用第三方成熟的框架,相当于让别人帮助开发者完成了一些基础性的工作,此时开发者只需要集中精力完成系统业务逻辑的设计和实现。使软件系统实现可扩展性在技术上灵活地使用各种架构模式和代码设计模式,并且在使用代码设计模式的同时,使用其所提倡的面向接口编程,会对软件系统的可扩展性和可移植性的提高有所帮助。希望能够设计出“高内聚、低耦合”的应用系统。这是架构设计最主要的目标,实现系统的高内聚、低耦合遵从以下原则:利用分层架构实现系统在纵向上的低藕合;利用开源框架进一步确保纵向分层的具体实现;按照功能划分子系统来实现横向上的低偶合;利用包结构确保横向上低耦合的具体实现 。

高内聚低耦合定义常见问题

耦合性:也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息

内聚性:又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语名之间、程序段之间)联系的越紧密,则它的内聚性就越高。

所谓高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。

耦合:一个软件结构内不同模块之间互连程度的度量。

对于低耦合,粗浅的理解是:一个完整的系统,模块与模块之间,尽可能的使其独立存在。也就是说,让每个模块,尽可能的独立完成某个特定的子功能。模块与模块之间的接口,尽量的少而简单。如果某两个模块间的关系比较复杂的话,最好首先考虑进一步的模块划分。这样有利于修改和组合。

耦合性:也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。

模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息内聚性:又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。若一个模块内各元素(语句之间、程序段之间)联系的越紧密,则它的内聚性就越高。

高内聚低耦合内聚

内聚:故名思议,表示内部间聚集、关联的程度,那么高内聚就是指要高度的聚集和关联。高内聚是指类与类之间的关系而定,高,意思是他们之间的关系要简单,明了,不要有很强的关系,不然,运行起来就会出问题。一个类的运行影响到其他的类。由于高内聚具备可靠性,可重用性,可读性等优点,模块设计推荐采用高内聚。内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。它描述的是模块内的功能联系。

偶然内聚:一个模块内的各处理元素之间没有任何联系,只是偶然地被凑到一起。这种模块也称为巧合内聚,内聚程度最低。

逻辑内聚:这种模块把几种相关的功能组合在一起, 每次被调用时,由传送给模块参数来确定该模块应完成哪一种功能 。

时间内聚:把需要同时执行的动作组合在一起形成的模块称为时间内聚模块。

过程内聚:构件或者操作的组合方式是,允许在调用前面的构件或操作之后,马上调用后面的构件或操作,即使两者之间没有数据进行传递。简单的说就是如果一个模块内的处理元素是相关的,而且必须以特定次序执行则称为过程内聚。例如某要完成登录的功能,前一个功能判断网络状态,后一个执行登录操作,显然是按照特定次序执行的。

通信内聚:指模块内所有处理元素都在同一个数据结构上操作或所有处理功能都通过公用数据而发生关联(有时称之为信息内聚)。即指模块内各个组成部分都使用相同的数据结构或产生相同的数据结构。

顺序内聚:一个模块中各个处理元素和同一个功能密切相关,而且这些处理必须顺序执行,通常前一个处理元素的输出时后一个处理元素的输入。例如某要完成获取订单信息的功能,前一个功能获取用户信息,后一个执行计算均价操作,显然该模块内两部分紧密关联。顺序内聚的内聚度比较高,但缺点是不如功能内聚易于维护。

功能内聚:模块内所有元素的各个组成部分全部都为完成同一个功能而存在,共同完成一个单一的功能,模块已不可再分。即模块仅包括为完成某个功能所必须的所有成分,这些成分紧密联系、缺一不可。

高内聚低耦合耦合

耦合:是对模块间关联程度的度量。耦合的强弱取决与模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。 模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差。降低模块间的耦合度能减少模块间的影响,防止对某一模块修改所引起的“牵一发动全身”的水波效应,保证系统设计顺利进行。 耦合度就是某模块(类)与其它模块(类)之间的关联、感知和依赖的程度,是衡量代码独立性的一个指标。

非直接耦合:两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。耦合度最弱,模块独立性最强。

数据耦合:调用模块和被调用模块之间只传递简单的数据项参数。相当于高级语言中的值传递。

标记耦合:调用模块和被调用模块之间传递数据结构而不是简单数据,同时也称作特征耦合。表就和的模块间传递的不是简单变量,而是像高级语言中的数据名、记录名和文件名等数据结果,这些名字即为标记,其实传递的是地址。

控制耦合:模块之间传递的不是数据信息,而是控制信息例如标志、开关量等,一个模块控制了另一个模块的功能。

外部耦合:一组模块都访问同一全局简单变量,而且不通过参数表传递该全局变量的信息,则称之为外部耦合。

公共耦合:一组模块都访问同一个全局数据结构,则称之为公共耦合。公共数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。如果模块只是向公共数据环境输入数据,或是只从公共数据环境取出数据,这属于比较松散的公共耦合;如果模块既向公共数据环境输入数据又从公共数据环境取出数据,这属于较紧密的公共耦合。

公共耦合会引起以下问题:

1. 无法控制各个模块对公共数据的存取,严重影响了软件模块的可靠性和适应性。

2. 使软件的可维护性变差。若一个模块修改了公共数据,则会影响相关模块。

3. 降低了软件的可理解性。不容易清楚知道哪些数据被哪些模块所共享,排错困难。

一般地,仅当模块间共享的数据很多且通过参数传递很不方便时,才使用公共耦合。

内容耦合:一个模块直接访问另一模块的内容,则称这两个模块为内容耦合。

若在程序中出现下列情况之一,则说明两个模块之间发生了内容耦合:

1. 一个模块直接访问另一个模块的内部数据。

2. 一个模块不通过正常入口而直接转入到另一个模块的内部。

3. 两个模块有一部分代码重叠(该部分代码具有一定的独立功能)。

4. 一个模块有多个入口。

内容耦合可能在汇编语言中出现。大多数高级语言都已设计成不允许出现内容耦合。这种耦合的耦合性最强,模块独立性最弱。

软件架构设计的目的简单说就是在保持软件内在联系的前提下,分解软件系统,降低软件系统开发的复杂性,而分解软件系统的基本方法无外乎分层和分割。但是在保持软件内在联系的前提下,如何分层分割系统,分层分割到什么样的粒度,并不是一件容易的事,这方面有各种各样的分解方法,比如:关注点分离,面向方面,面向对象,面向接口,面向服务,依赖注入,以及各种各样的设计原则等,

耦合可以分为以下几种,它们之间的耦合度由高到低排列如下:

(1) 内容耦合:一个模块直接访问另一模块的内容,则称这两个模块为内容耦合。

若在程序中出现下列情况之一,则说明两个模块之间发生了内容耦合:

1. 一个模块直接访问另一个模块的内部数据。

2. 一个模块不通过正常入口而直接转入到另一个模块的内部。

3. 两个模块有一部分代码重叠(该部分代码具有一定的独立功能)。

4. 一个模块有多个入口。

内容耦合可能在汇编语言中出现。大多数高级语言都已设计成不允许出现内容耦合。这种耦合的耦合性最强,模块独立性最弱。

(2) 公共耦合:一组模块都访问同一个全局数据结构,则称之为公共耦合。公共数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。如果模块只是向公共数据环境输入数据,或是只从公共数据环境取出数据,这属于比较松散的公共耦合;如果模块既向公共数据环境输入数据又从公共数据环境取出数据,这属于较紧密的公共耦合。

公共耦合会引起以下问题:

1. 无法控制各个模块对公共数据的存取,严重影响了软件模块的可靠性和适应性。

2. 使软件的可维护性变差。若一个模块修改了公共数据,则会影响相关模块。

3. 降低了软件的可理解性。不容易清楚知道哪些数据被哪些模块所共享,排错困难。

一般地,仅当模块间共享的数据很多且通过参数传递很不方便时,才使用公共耦合。

(3) 外部耦合:一组模块都访问同一全局简单变量,而且不通过参数表传递该全局变量的信息,则称之为外部耦合。

(4) 控制耦合:模块之间传递的不是数据信息,而是控制信息例如标志、开关量等,一个模块控制了另一个模块的功能。

(5) 标记耦合:调用模块和被调用模块之间传递数据结构而不是简单数据,同时也称作特征耦合。表就和的模块间传递的不是简单变量,而是像高级语言中的数据名、记录名和文件名等数据结果,这些名字即为标记,其实传递的是地址。

(6) 数据耦合:调用模块和被调用模块之间只传递简单的数据项参数。相当于高级语言中的值传递。

(7) 非直接耦合:两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的。耦合度最弱,模块独立性最强。

总结:耦合是影响软件复杂程度和设计质量的一个重要因素,为提高模块的独立性,应建立模块间尽可能松散的系统,在设计上我们应采用以下原则:若模块间必须存在耦合,应尽量使用数据耦合,少用控制耦合,慎用或有控制地使用公共耦合,并限制公共耦合的范围,尽量避免内容耦合。

内聚有如下的种类,它们之间的内聚度由弱到强排列如下:

(1) 偶然内聚:一个模块内的各处理元素之间没有任何联系,只是偶然地被凑到一起。这种模块也称为巧合内聚,内聚程度最低。

(2) 逻辑内聚:这种模块把几种相关的功能组合在一起, 每次被调用时,由传送给模块参数来确定该模块应完成哪一种功能 。

(3) 时间内聚:把需要同时执行的动作组合在一起形成的模块称为时间内聚模块。

(4) 过程内聚:构件或者操作的组合方式是,允许在调用前面的构件或操作之后,马上调用后面的构件或操作,即使两者之间没有数据进行传递。简单的说就是如果一个模块内的处理元素是相关的,而且必须以特定次序执行则称为过程内聚。

(5) 通信内聚:指模块内所有处理元素都在同一个数据结构上操作或所有处理功能都通过公用数据而发生关联(有时称之为信息内聚)。即指模块内各个组成部分都使用相同的数据数据或产生相同的数据结构。

(6) 顺序内聚:一个模块中各个处理元素和同一个功能密切相关,而且这些处理必须顺序执行,通常前一个处理元素的输出是后一个处理元素的输入。

例如某模块完成工业产值求值的功能,前一个功能元素求总产值,后一个功能元素求平均产值,显然该模块内两部分紧密关联。

顺序内聚的内聚度比较高,但缺点是不如功能内聚易于维护。

(7) 功能内聚:模块内所有元素的各个组成部分全部都为完成同一个功能而存在,共同完成一个单一的功能,模块已不可再分。即模块仅包括为完成某个功能所必须的所有成分,这些成分紧密联系、缺一不可。

功能内聚是最强的内聚,其优点是它的功能明确。判断一个模块是否功能内聚,一般从模块名称就能看出。如果模块名称只有一个动词和一个特定的目标(单数名词),一般来说就是功能内聚,如:"计算水费"、"计算产值"等模块。功能内聚一般出现在软件结构图的较低层次上。

功能内聚模块的一个重要特点是:他是一个"暗盒",对于该模块的调用者来说,只需要知道这个模块能做什么,而不需要知道这个模块是如何做的。

总结:在模块划分时,要遵循"一个模块,一个功能"的原则,尽可能使模块达到功能内聚。

高内聚,低耦合的系统有什么好处呢?事实上,短期来看,并没有很明显的好处,甚至短期内会影响系统的开发进度,因为高内聚,低耦合的系统对开发设计人员提出了更高的要求。高内聚,低耦合的好处体现在系统持续发展的过程中,高内聚,低耦合的系统具有更好的重用性,维护性,扩展性,可以更高效的完成系统的维护开发,持续的支持业务的发展,而不会成为业务发展的障碍。

高内聚低耦合定义文献

户内安全隐患定义、类别 户内安全隐患定义、类别

格式:pdf

大小:7KB

页数: 4页

评分: 4.4

户内安全隐患定义、类别 安全隐患,具有实时危险或违反国家规范明令禁止条例款的, 强制要 求做出整改。安全隐患实时危险指可能导致户内有关燃气设施发生危 及安全的泄漏以及引起停气、中毒、火灾、爆炸等事故的。 ●一级隐患内容 漏气:包含从用户引入管总阀门到各用户燃气具之间的所有燃气 设施、设备出现的漏气现象; 违反国家规范明令禁止条款的户内燃气设施: 指户内管道、燃气 表等燃气设施选型、安装违反国家规范明令禁止条款的; 直排式热水器:指客户使用属国家明令禁止生产使用的直排式热 水器; 热水器无烟道及烟道安装不规范:指烟道式热水器安装在室内 (封闭阳台算室内) 但无安装烟道或烟道未伸出室外 (开放式阳台除 外)、烟道与热水器排烟口无密封、烟道破损或排烟口离门、窗的距 离不够、多台烟道合用一个总烟道且相互影响、没有防倒风装置、水 平烟道穿越卧室等; 胶管破损、老化、中间有接口、无安装管夹; 用户盗气

立即下载
深基坑定义 深基坑定义

格式:pdf

大小:7KB

页数: 2页

评分: 4.3

深基坑 基坑工程简介: 基坑工程主要包括基坑支护体系设计与施工和土方开挖,是一项综合 性很强的系统工程。它要求岩土工程和结构工程技术人员密切配合。基坑 支护体系是临时结构,在地下工程施工完成后就不再需要。 基坑工程具有以下特点: 1)基坑支护体系是临时结构,安全储备较小,具有较大的风险性。基 坑工程施工过程中应进行监测,并应有应急措施。在施工过程中一旦出现 险情,需要及时抢救。 2)基坑工程具有很强的区域性。如软粘土地基、黄土地基等工程地质 和水文地质条件不同的地基中基坑工程差异性很大。同一城市不同区域也 有差异。基坑工程的支护体系设计与施工和土方开挖都要因地制宜,根据 本地情况进行,外地的经验可以借鉴,但不能简单搬用。 3)基坑工程具有很强的个性。基坑工程的支护体系设计与施工和土方 开挖不仅与工程地质水文地质条件有关,还与基坑相邻建(构)筑物和地 下管线的位置、抵御变形的能力、重要性,以

立即下载

基本概念

软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。划分模块的一个准则就是高内聚低耦合。

耦合度(Coupling)是对模块间关联程度的度量。耦合的强弱取决与模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。

模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差。

降低模块间的耦合度能减少模块间的影响,防止对某一模块修改所引起的"牵一发动全身"的水波效应,保证系统设计顺利进行。

内聚和耦合密切相关,同其它模块存在强耦合关系的模块常意味着弱内聚,强内聚常意味着弱耦合。

等级划分

耦合度可分为七级。

a)非直接耦合:

两模块间没有直接关系,之间的联系完全是通过主模块的控制和调用来实现的

b)数据耦合:

一个模块访问另一模块,彼此间通过简单数据参数来交换输入、输出信息。这里的简单数据参数不同于控制参数、公共数据结构或外部变量。

c)标记耦合:

如一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,不是简单变量。

d)控制耦合:

一个模块通过传递开关、标志、名字等控制信息,明显的控制选择另一模块的功能

e)外部耦合:

一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数传递该全局变量的信息

f)公共耦合:

一组模块都访问同一个公共数据环境。该公共数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。

g)内容耦合:

一个模块直接修改另一个模块的数据,或直接转入另一个模块

内聚度是指内部各元素之间联系的紧密程度,模块的内聚种类通常可分为7种,按其内聚度从低到高的次序依此为:偶然内聚、逻辑内聚、瞬时内聚、过程内聚、通信内聚、顺序内聚、功能内聚。

高内聚低耦合相关推荐
  • 相关百科
  • 相关知识
  • 相关专栏