高内聚和内聚分类

        1. 内聚

内聚指的的一个模块各组成成分的紧密程度。LCOM4通俗的说就一个类的成员变量和成员函数可以分为几组,以下两种情况之一分为一组:一、函数间存在调用关系。二、两个或更多函数操作同一个成员变量。此值最好是1。

          1. 偶然内聚、逻辑内聚

前者看起来没联系,实际也没联系;后者看起来有联系,实际没联系。这种情况很常见,尤其在基础库:一、某个读取配置类,有三个函数从txt读取配置,从ini读取配置,从json文件读取配置。系统最初从txt读取配置,后来改成ini,最后改成json。解决方法:删除不同的两个函数。二、某CAD二次开发扩展库,有个图层类,有三个函数:增加图层、删除图层、获取指定图层实体。几乎没有功能同时调用这三个函数。基础库都是这样,无需修改。

          1. 时间内聚

同一时间执行,如:初始化、结束、某个事件。如:某系统启动时需要增加菜单、清理备份、连接数据库。于是增加启动类,三个函数分别对应增加菜单、清理备份、连接数据库。解决方法:如果代码少,就这样;代码多,三个函数升级成三个类。

          1. 过程内聚

按一定步骤完成多个相关功能。如:某类有4个函数:从文件读取配置、从服务端读配置、运算、输出结果。网络版调用顺序为:从服务端读取配置、运算、输出结果;单机版调用顺序为:从本地读取配置、运算、输出界面。内聚性已经可以接受,当然也可进一步优化:读取文件和从服务端读取数据的基础功能统一成类派生于IRead接口,读取配置只和IRead交互。

          1. 通信内聚

所有成员都操作同一数据集。比如:某个类对应数据库一个表的增删查改。

          1. 顺序内聚(信息内聚)

所有成员都与一个功能密切相关,且一个函数的输出是另一个的输入。某CAD二次开发模块的寻找矩形类,有如下几个函数:一、收集line、pline实体。二、将line和pline转为数学直线。三、从直线中寻找水平平行线。 四、依次计算各水平线是否有对应的垂直线。

          1. 功能内聚

所有成员都是完成某单一功能所必须的。

https://img-blog.csdnimg.cn/ea2601b3918f4aef836b5fe30da2ebf7.gif#pic_center#pic_center

其它

学院课程

基础算法的C++实现课程,请点击下面的优快云学院的链接。

2024年1月15之前完全免费,之后绝大部分免费

https://edu.youkuaiyun.com/course/detail/38771

C#入职培训

此课程的目的:让新同事更快完成从学生到C#程序员的转换,更快上手完成C#的开发工作。

https://edu.youkuaiyun.com/course/detail/38768

C++入职培训

让新同事更快完成从学生到C++程序员的转换,更快上手完成C++的开发工作。

https://edu.youkuaiyun.com/course/detail/32049

运行验证环境

Win10 VS2022 Ck++17 或win7 VS2019 C++17

每天都补充正能量

好好学习,天天向上。

事无终始,无务多业。

是故置本不安者,无务丰末。

相关下载

如果你时间宝贵,只想看精华,请到优快云下载频道下载《闻缺陷则喜算法册》doc版

https://download.youkuaiyun.com/download/he_zhidan/88348653

https://i-blog.csdnimg.cn/blog_migrate/4b48f80cdf99b7ea9bda88ceb91d788f.gif#pic_center

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

软件架构师何志丹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值