什么叫高内聚,低耦合 超简单生活例子,让你一看就明白

简介: 本文通过生活化的例子解释了高内聚和低耦合的概念,强调了在编写代码时应该追求高内聚(相关功能紧密组合)和低耦合(功能间相互独立,减少相互影响),以提高代码质量和可维护性。

首先,咱要清楚一点:

高内聚,低耦合 => 好的代码

高内聚和低耦合是好的代码必须具备的特点

1、什么叫做高内聚呢?

高内聚: 把有关联的东西放在一起,最好能放在指定的地方(好找)

举例子:

我夫人特别温柔,上得厅堂,下得厨房,但有一个很明显的缺点,平时东西会乱放

    她的衣服,会出现在很多地方

    比如,床上,衣柜上,沙发上,椅子上,地上,晾衣架上...

    可谓是无处不在

    于是,每当她想找某个衣服,就会非常困难

    我给夫人找一件衣服,就需要把我家的各个角落都遍历一遍,甚至还不一定能找到

上述情况,就是“低内聚”

2、什么叫做低耦合呢?

耦合: 两个模块/代码 之间的关联关系,关联关系越大,越容易相互影响,认为是耦合越大

代码,追求的是低耦合,避免“牵一发而动全身”这边一改出 bug,影响到了其他的地方

举例子:

    1、最近公司加班,我太忙了,一周没回家,夫人思念成疾,住院了,我当时退掉所有工作,请假去医院照顾她

    这就是高耦合

    2、但如果说我高中暗恋的女同学生病了,我得知消息后顶多发个消息意思意思,不会影响我的工作和生活

    这就是低耦合
目录
相关文章
|
SQL 存储 关系型数据库
解析MySQL Binlog:从零开始的入门指南【binlog入门指南】
解析MySQL Binlog:从零开始的入门指南【binlog入门指南】
13715 0
|
消息中间件 供应链 架构师
微服务如何实现低耦合高内聚?架构师都在用的技巧!
本文介绍了微服务的拆分方法,重点讲解了“高内聚”和“低耦合”两个核心设计原则。高内聚强调每个微服务应专注于单一职责,减少代码修改范围,提高系统稳定性。低耦合则通过接口和消息队列实现服务间的解耦,确保各服务独立运作,提升系统的灵活性和可维护性。通过领域建模和事件通知机制,可以有效实现微服务的高效拆分和管理。
385 7
|
存储 安全 API
基于FreeRTOS中的串口不定长接收(使用队列进行数据传输)
基于FreeRTOS中的串口不定长接收(使用队列进行数据传输)
1425 0
|
搜索推荐 数据可视化 数据挖掘
基于Python flask框架的招聘数据分析推荐系统,有数据推荐和可视化功能
本文介绍了一个基于Python Flask框架的招聘数据分析推荐系统,该系统具备用户登录注册、数据库连接查询、首页推荐、职位与城市分析、公司性质分析、职位需求分析、用户信息管理以及数据可视化等功能,旨在提高求职者的就业效率和满意度,同时为企业提供人才匹配和招聘效果评估手段。
582 0
基于Python flask框架的招聘数据分析推荐系统,有数据推荐和可视化功能
|
Web App开发 JSON 安全
Chrome浏览器的跨域问题
【10月更文挑战第6天】
2138 123
|
9月前
|
存储 缓存 人工智能
工作中,Redis的15种使用场景
Redis 在现代应用中扮演着至关重要的角色,涵盖缓存加速、分布式锁、实时排行榜、计数器、消息队列等15种常见场景。它通过高效的数据结构和原子操作,大幅提升系统性能和响应速度,广泛应用于会话管理、签到系统、限流控制、购物车、抽奖活动、全页缓存、发布订阅、地理位置服务、分布式ID生成及数据过期处理等领域。灵活运用这些特性,可显著优化开发效率和用户体验。
1546 0
工作中,Redis的15种使用场景
|
11月前
|
存储 人工智能 数据库
面向医疗场景的大模型 RAG 检索增强解决方案
本方案为您介绍,如何使用人工智能平台 PAI 构建面向医疗场景的大模型 RAG 检索增强解决方案。
|
11月前
|
缓存 Java 测试技术
分享干货:idea常用快捷键分类总结(适合速查~~建议收藏♥)
本文以分类的形式总结了IDEA常用、好用快捷键,全是干货~
3434 1
分享干货:idea常用快捷键分类总结(适合速查~~建议收藏♥)
|
JavaScript 前端开发 开发者
Vue 3中的Proxy
【10月更文挑战第23天】Vue 3中的`Proxy`为响应式系统带来了更强大、更灵活的功能,解决了Vue 2中响应式系统的一些局限性,同时在性能方面也有一定的提升,为开发者提供了更好的开发体验和性能保障。
497 7
|
SQL 前端开发 Java
Java的学习路线(非常完整)
Java的学习路线(非常完整)
8988 3
Java的学习路线(非常完整)