
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
软件开发设计思维的概念大家在学习编程开发的时候应该都接触过的吧,今天我们就通过案例分析来简单了解一下,高内聚低耦合基础知识分享。
一、什么是高内聚?
功能内聚
将相同功能放到一个类或者模块中,内聚程度高。
顺序内聚
如果一个功能的输出是另外一个功能的输入,这种存在顺序依赖关系的,我们将他们归到一个模块中叫做顺序内聚。
通信内聚
如果功能点使用相同输入或输出数据,我们将他们内聚到一个模块中,叫做通信内聚。
过程内聚
如果不同的功能是由同一个控制流支配的,我们称作过程内聚。
时间内聚
不同的功能在同一时间段内执行,比如银行不同的跑批任务,由时间去控制是否放在同一个模块中的内聚叫做时间内聚。
逻辑内聚
不同的功能可能他们内部的逻辑是一致的,我们将他归在一起叫做逻辑内聚。
偶然内聚
而偶然内聚是指不同的功能,没什么关联就直接放在一起了。这种情况很常见,比如A团队同时承担了支付、物流、产品等功能的开发,为了节省开发资源,他们就把不相干的功能放到一个模块中,那么这种偶然内聚会随着业务发展遇到各种问题。
上面讲解了内聚的可能7种分类,大家不用太较真,了解一下就行。
小结一下,我们所说的高内聚,其实是用来指导类或者模块本身的设计,简单来说,就是指相近的功能应该放到同一个类中,不相近的功能不要放到同一个类中。相近的功能往往会被同时修改,放到同一个类中,修改会比较集中,代码容易维护。
二、什么是低耦合?
现在我们聚焦到耦合上,耦合实际上关注在类与类之间或者模块与模块之间依赖关系的设计,我们通常有下面7种类型的耦合关系。
非直接耦合
两个模块之间没有直接关系,模块独立性强
数据耦合
两个模块之间用参数传递关联,模块之间影响小的耦合关系。比如订单系统输入物流编号ID,物流系统返回你具体的物流信息。
标记耦合
两个模块依赖同样的一个数据结构,传递的是数据结构。
比如租房费用计算系统,需要计算水费和电费,如果你传用户信息这个数据结构,让水费和电费系统领取用户对象的用水量和用电量,这就是标记耦合。更好的做法应该只需要传必要的用水量和用电量,而不是传输整个用户对象。
控制耦合
两个模块之间传输控制信息,比如某个标志或者开关,调用模块需要知道被调用模块的内部逻辑,增加了相互依赖和理解的复杂度。
外部耦合
一组模块需要与外部环境关联,这组模块访问同一全局变量,外部耦合有时候必不可少,但应尽量减少此类模块数量。
公共耦合
一组模块均访问同一全局数据区,这种情况叫做公共耦合。比如有一个公共变量,不同模块都去修改它。
内容耦合
一个模块直接操作或修改另外一个模块的内部书,一个模块不通过正常入口访问另外一个模块,这就是内容耦合,是糟糕的情况,需要避免。比如直接调用另外一个类的set方法,所以这就要求我们不要无脑的把类的任何属性都加上set方法。
上面大致分享了耦合的7种情况,你们项目属于哪种情况呢?
这边再总结一下,所谓低耦合是说,在代码中,类与类之间的依赖关系简单清晰。即使两个类有依赖关系,一个类的代码改动不会或者很少导致依赖类的代码改动。
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!请读者仅作参考。更多内容请加抖音达内三江区域学习了解。