什么是耦合、解耦

作者: IvanHung | 来源:发表于2016-12-03 13:48 被阅读4475次

一、耦合

1、耦合是指两个或两个以上的体系或两种运动形式间通过相互作用而彼此影响以至联合起来的现象。

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

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

二、解耦

1、解耦,字面意思就是解除耦合关系。

2、在软件工程中,降低耦合度即可以理解为解耦,模块间有依赖关系必然存在耦合,理论上的绝对零耦合是做不到的,但可以通过一些现有的方法将耦合度降至最低。

3、设计的核心思想:尽可能减少代码耦合,如果发现代码耦合,就要采取解耦技术。让数据模型,业务逻辑和视图显示三层之间彼此降低耦合,把关联依赖降到最低,而不至于牵一发而动全身。原则就是A功能的代码不要写在B的功能代码中,如果两者之间需要交互,可以通过接口,通过消息,甚至可以引入框架,但总之就是不要直接交叉写。

4、观察者模式:观察者模式存在的意义就是「解耦」,它使观察者和被观察者的逻辑不再搅在一起,而是彼此独立、互不依赖。比如网易新闻的夜间模式,当用户切换成夜间模式之后,被观察者会通知所有的观察者「设置改变了,大家快蒙上遮罩吧」。QQ消息推送来了之后,既要在通知栏上弹个推送,又要在桌面上标个小红点,也是观察者与被观察者的巧妙配合。

——部分内容整理自网络——

相关文章

  • 什么是耦合、解耦

    一、耦合 1、耦合是指两个或两个以上的体系或两种运动形式间通过相互作用而彼此影响以至联合起来的现象。 2、在软件工...

  • 为什么工厂模式可以解耦?why?

    1、聊聊解耦? 耦合:代码之间的关联关系称为耦合,具有强关联关系的称为强耦合。 解耦:解除代码之间的关联关系,使每...

  • 解耦

    解耦 对于大型重构, 最有效的手段就是 解耦, 解耦的目的使实现代码高聚合、松耦合。 解耦为何如此...

  • mq

    为什么要用mq? 解耦 mq可以解耦合,系统a和其他系统紧耦合,用mq,其他系统可以自己pub/sub 异步化 提...

  • 架构 - iOS架构设计之模块间的解耦尝试

    前言 工程大了以后,就需要分拆,不管是组件化还是插件化,还是什么,解耦是第一步,而且是各个维度的解耦。 模块解耦合...

  • Java之多线程

    Thread(耦合,不推荐) Runnable(解耦,推荐) Executors ExecutorService ...

  • 什么是耦合,解耦的几种方式

    结果先行,解耦的几种方式主要包括利用继承思想形成的多态性,如类的向上转型或接口回调。已经使用适配器设计模式。 在项...

  • 分布式消息队列

    1 为什么要使用消息队列 最主要得应用场景:解耦 异步 削峰 (1)解耦 传统模式:系统间得耦合度强 如系统A直接...

  • JS高程:读书摘要(二十)终章

    一、可维护性 松散耦合 解耦HTML/JavaScript HTML 是数据,JavaScript 是行为。因为它...

  • MVC

    架构的中心就是 耦合解耦 :使不同的类或不同的模块之间交互影响越少,常用的解耦方式 Delegate Na...

网友评论

  • 7dae6e523694:讲的不错,我们不停地讲要解耦,但是为什么要解耦也要理解,其实不仅仅是软件要解耦,现实生活中的很多方面都要解耦,比如usb接口使硬件解耦了,java虚拟机使软件与具体操作系统解耦了,tcp/ip协议使使用网络与具体的硬件网络解耦了,

本文标题:什么是耦合、解耦

本文链接:https://www.haomeiwen.com/subject/qulcmttx.html