首页 > 编程语言 >耦合与解耦:IT程序员解析

耦合与解耦:IT程序员解析

时间:2023-03-10 15:35:45浏览次数:35  
标签:代码 耦合度 观察者 程序员 模块 之间 耦合 解析

耦合:在软件工程中,对象之间的耦合度就是对象之间的依赖性。对象之间的耦合越高,维护成本越高,因此对象的设计应使类和构件之间的耦合最小。

耦合的分类:有软硬件之间的耦合,还有软件各模块之间的耦合。耦合性是程序结构中各个模块之间相互关联的度量。它取决于各个模块之间的接口的复杂程度、调用模块的方式以及哪些信息通过接口。

解耦:
1 在软件工程中,降低耦合度即可以理解为解耦,模块间有依赖关系必然存在耦合,理论上的绝对零耦合是做不到的,但可以通过一些现有的方法将耦合度降至最低。
2 设计的核心思想:尽可能减少代码耦合,如果发现代码耦合,就要采取解耦技术。让数据模型,业务逻辑和视图显示三层之间彼此降低耦合,把关联依赖降到最低,而不至于牵一发而动全身。原则就是A功能的代码不要写在B的功能代码中,如果两者之间需要交互,可以通过接口,通过消息,甚至可以引入框架,但总之就是不要直接交叉写。
3 观察者模式:观察者模式存在的意义就是「解耦」,它使观察者和被观察者的逻辑不再搅在一起,而是彼此独立、互不依赖。比如网易新闻的夜间模式,当用户切换成夜间模式之后,被观察者会通知所有的观察者「设置改变了,大家快蒙上遮罩吧」。QQ消息推送来了之后,既要在通知栏上弹个推送,又要在桌面上标个小红点,也是观察者与被观察者的巧妙配合。

标签:代码,耦合度,观察者,程序员,模块,之间,耦合,解析
From: https://www.cnblogs.com/winyhan/p/17203495.html

相关文章

  • mongdb.driver UpdateOptions参数解析
    在.NETMongoDB.Driver中,UpdateOptions类是MongoDB集合中更新操作的参数选项类。该类包含以下常用属性:IsUpsert:是否执行upsert操作。如果设置为true,表示文档不存......
  • LeetCode|1410. HTML 实体解析器
    题目链接:1410.HTML实体解析器「HTML实体解析器」是一种特殊的解析器,它将HTML代码作为输入,并用字符本身替换掉所有这些特殊的字符实体。HTML里这些特殊字符和它......
  • DTALK直播预约 | 深度解析大资管行业数字化转型
    在《商业银行理财业务监督管理办法》《关于规范金融机构资产管理业务的指导意见》等理财新规、资管新规的要求下,大资管行业结构持续优化,存量金融风险明显收敛。此外,也促使......
  • 【Mybatis】【插件】Mybatis源码解析-插件机制
    1 前言这节我们来看看插件,插件是来干啥的呢?一般情况下,开源框架都会提供插件或其他形式的拓展点,供开发者自行拓展。这样的好处是显而易见的,一是增加了框架的灵活性。二......
  • Quine-McCluskey两级逻辑化简算法原理解析
    转载请务必注明出处:https://www.cnblogs.com/the-wind/p/15764283.html目录1背景介绍:两级逻辑2Quine-McCluskey两级逻辑化简2.1蕴涵项与素蕴涵项2.2Quine-McCluskey算......
  • #yyds干货盘点# LeetCode程序员面试金典: 计算器
    1.题目:给定一个包含正整数、加(+)、减(-)、乘(*)、除(/)的算数表达式(括号除外),计算其结果。表达式仅包含非负整数,+,-,*,/四种运算符和空格 。整数除法仅保留整数部分。......
  • json解析异常显示{“$ref“:“$[0]“}
    在编写测试代码实现一个组织架构树的功能时,部门的parent部门没有显示,出现了json解析异常错误[{“ref":"ref":"ref":"[0]”}][{“ref":"ref":"ref":"[1]”}]......
  • React Hooks源码深度解析
    作者:京东零售郑炳懿前言ReactHooks是React16.8引入的一个新特性,它允许函数组件中使用state和其他React特性,而不必使用类组件。Hooks是一个非常重要的概念,因为它们提......
  • React Hooks源码深度解析
    作者:京东零售郑炳懿前言​​ReactHooks​​是​​React​​16.8引入的一个新特性,它允许函数组件中使用​​state​​和其他React特性,而不必使用类组件。​​Hooks​​......
  • 推荐收藏!10大程序员必备生产力工具
    作为程序员,提高生产力是我们一直追求的目标。随着技术的发展,越来越多的工具和应用程序被开发出来,帮助程序员们更好地完成工作。在本文中,我将介绍一些程序员必备的生产力工......