什么是耦合与解耦

目录

一、什么是耦合

二、耦合分类

三、解耦


一、什么是耦合

1、耦合,在中文词典里是动词,意思:物理学上指两个或两个以上的体系或两种运动形式之间通过各种相互作用而彼此影响以至联合起来的现象。例如:

  1. 如放大器级与级之间信号的逐级放大量通过阻容耦合或变压器耦合;两个线圈之间的互感是通过磁场的耦合。
  2. 如在两个单摆中间连一根线,它们的振动就会发生耦合。

2、耦合(英语:Coupling,dependency),在软件工程,简单的说,是指一程序中,模块及模块之间信息或参数依赖的程度。

详细的说,耦合表示两个子系统(或类)之间的关联程度,当一个子系统(或类)发生变化时对另一个子系统(或类)的影响很小,则称它们是松散耦合的;反之,如果变化的影响很大时,则称它们是紧密耦合的。耦合的强弱取决于模块间接间的复杂性、引用模块的位置和数据的传送方式等。设计时应尽量使模块间的耦合度小,模块间的耦合度直接影响系统的可理解性、可测试性、可靠性和可维护性

二、耦合分类

参考链接:https://blog.csdn.net/u010217055/article/details/118256774

三、解耦

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

常用的解耦方法有如下几种:

(a)采用现有设计模式实现解耦,如事件驱动模式、观察者模式责任链模式等都可以达到解耦的目的;

(b)采用面向接口的方式编程,而不是用直接的类型引用,除非在最小内聚单元内部。但使用该方法解耦需要注意不要滥用接口。

(c)高内聚,往往会带来一定程度的低耦合度。高内聚决定了内部自行依赖,对外只提供必须的接口或消息对象,那么由此即可达成较低的耦合度。

  • 14
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
RabbitMQ是一个开源的消息中间件,它实现了高效的消息传递机制,可以在分布式系统中实现解耦和异步通信。通过使用RabbitMQ,不同的应用程序可以通过发送和接收消息来进行通信,而不需要直接依赖于彼此。 解耦是指将应用程序的不同部分解开,使它们能够独立地进行开发、测试和部署。在分布式系统中,解耦是非常重要的,因为它可以降低系统的复杂性,并提高系统的可扩展性和可维护性。 RabbitMQ通过使用消息队列的方式来实现解耦。应用程序可以将消息发送到RabbitMQ的消息队列中,而不需要直接与其他应用程序进行通信。其他应用程序可以从队列中接收消息,并进行相应的处理。这种方式可以使应用程序之间的通信变得松散耦合,每个应用程序都可以独立地进行开发和部署。 RabbitMQ提供了丰富的特性来支持解耦和异步通信,包括以下几个方面: 1. 消息队列:RabbitMQ使用消息队列来存储和传递消息。消息队列可以缓冲发送方和接收方之间的消息,使得它们可以独立地进行工作。 2. 发布/订阅模式:RabbitMQ支持发布/订阅模式,可以将消息广播给多个消费者。这样,一个消息可以被多个应用程序同时接收和处理。 3. 路由和交换机:RabbitMQ使用交换机来路由消息。通过定义不同类型的交换机和绑定规则,可以将消息发送到指定的队列中。 4. 消息确认机制:RabbitMQ提供了消息确认机制,确保消息能够可靠地传递。发送方可以等待接收方的确认消息,以确保消息已经被成功处理。 5. 可靠性和持久化:RabbitMQ支持消息的持久化,即使在服务器故障或重启后,消息也不会丢失。它还提供了可靠性保证,确保消息能够按照指定的顺序进行处理。 6. 扩展性和高可用性:RabbitMQ可以通过添加多个节点来实现扩展性和高可用性。多个节点可以组成一个集群,提供更高的吞吐量和可靠性。 总之,RabbitMQ是一个强大的消息中间件,可以帮助应用程序实现解耦和异步通信。它提供了丰富的特性和灵活的配置选项,适用于各种不同的应用场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

心上学事上练

感谢您的支持,让我们一起成长

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

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

打赏作者

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

抵扣说明:

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

余额充值