设计模式与耦合内聚关系

参考文章1:七种代码耦合类型的图解:你的属于哪一种?-CSDN博客
参考文章2:【程序设计】一文讲解程序设计目标:高内聚,低耦合_代码低耦合高内聚-CSDN博客

  1. 耦合只有在将整个系统模块化之后才会产生,如果仅由一个模块构成的系统是不存在耦合的。
  2. 工程项目往往会将一个系统划分为若干个模块,这样就会产生耦合
  3. 分类1:耦合分为两大类,行为耦合:内容耦合、控制耦合,数据流耦合:公共耦合、外部耦合、引用耦合、数据耦合、非直接耦合
  4. 分类2:从模块数量分类,两个模块之间关系:控制耦合、引用耦合、数据耦合,三个模块之间关系:公共耦合、外部耦合,不确定数量模块之间关系:内容耦合
  5. 设计模式是解耦 行为耦合 的一种手段,利用多个设计模式可以在代码层面将内容耦合逐步降低为 非直接耦合

解耦方式:

  1. 控制耦合解耦方式:1.把if-else语音提到调用者(使用场景比较窄)、2.引入第三个模块封装if-else逻辑,如参考文章1中使用map(前两个模块会与第三个模块形成公共耦合,因此要求C模块很稳定长期不会改变)(设计模式的方式)。两个方式解耦成数据耦合或引用耦合
  2. 公共耦合 解耦到 外部耦合、引用耦合 解耦到 数据耦合:我觉得意义并不大,因为两者之间并没有降低多少耦合
  3. 公共耦合、外部耦合解耦方式:把参数提取为局部变量可以降低为数据耦合和引用耦合
  4. 数据耦合、引用耦合解耦方式(图1):只能通过引入第三个模块来解耦成非直接耦合(图2),但是这三个模块会形成 外部耦合 或 公共耦合(图2),因此第三个模块应当是长期稳定不变的,否则将是无意义的解耦并且提高维护成本

图1 系统1中AB模块标记耦合
在这里插入图片描述

图2 系统1A模块、系统1B模块、系统2构成外部耦合,但是系统1的耦合程度为非直接耦合
在这里插入图片描述

图3 系统1和系统2标记耦合
在这里插入图片描述
内聚待更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值