【架构基础】高内聚低耦合

文章强调了软件设计的目标是实现需求、易于重用和理解,避免冗余。高内聚低耦合是评估设计质量的关键,其中内聚关注模块的功能集中度,耦合关注模块间的相互依赖。提高内聚度包括限制接口和减少模块内部修改的影响,而降低耦合度可通过减少继承、使用接口、单一功能模块、避免全局变量和直接操作其他模块等方式实现。设计模式如MVC也能帮助降低耦合度。
摘要由CSDN通过智能技术生成

软件设计目标:实现需求、易于重用、易于理解、没有冗余。

Don't reinvent the wheel, just realign it.  --Anthony J D’ Angelo

高内聚低耦合,是软件工程中判断软件设计好坏的标准。主要评判模块或类的内聚性是否高,耦合度是否低。目的是使模块或类的可重用性、可移植性大大增强。通常程序结构中各模块的内聚程度越高,模块间的耦合程度就越低。

内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好只做一件事,它描述的是模块内的功能联系。耦合是软件结构中各模块之间相互联系的一种度量,耦合强弱取决于模块间接口的复杂程度。

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

高内聚:尽可能类的每个成员方法只完成一件事,最大限度的功能聚合。

低耦合:减少类与类、模块与模块、层次与层次之间的交互复杂度,如接口数量、参数数量等。

增强内聚度方法

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

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

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

降低耦合度的方法

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

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

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

4、少使用全局变量。

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

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

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

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值