耦合,紧耦合,松耦合,解耦

2019-11-26 14:19发布

一、耦合
耦合是两个或多个模块之间的相互关联。在软件工程中,两个模块之间的耦合度越高,维护成本越高。因此,在系统架构的设计过程中,应减少各个模块之间的耦合度,以提高应用的可维护性。

二、紧耦合
紧耦合架构本质是Client/Server的模型,如下图所示:
紧耦合架构
优点是:架构简单、设计简单、开发周期短、能够快速的开发、投入、部署、应用。
但随着集群规模的扩大,系统的稳定性逐渐变差,主要原因如下:
1、同步操作导致对网络资源消耗大。同步操作在数据发送和数据返回之间,有很大一段是空闲的,这种空闲占用是对网络资源的极大浪费。
2、安全控制力度差,因为服务器直接暴露给客户机,容易引发网络攻击行为。
3、程序代码之间关联度过高,不利于模块化处理。

三、松耦合
松耦合架构本质上是在client/server模型之间加入一个代理,把CS模型变成CAS模型。
在新的架构下,客户机的角色不变,依法上网承担起与客户机的通信,和对客户机的识别判断工作,服务器位于依法上网后面,对客户机来说不可见,它只负责数据处理工作,另外我们也把CS模型的同步操作改为CAS的代理处理。
如下图所示:
松耦合架构
优点如下:
1、多任务并行处理能力获得极大提升。
2、实现负载自适应机制(根据当时运行环境,松耦合架构分配并行工作任务,避免超载现象)。
3、基本杜绝了对Server服务端的网络攻击行为,由于依法上网的隔绝和筛查作用, 同时结合其它安全管理手段,外部攻击在依法上网处就被识别和过滤掉了,这样就保护了后面的服务器不受影响。
4、异步操作减少了网络资源消耗和操作关联。
5、提高了系统的可维护性。

松耦合和紧耦合的对比


紧耦合架构松耦合架构
工作方式同步异步
程序关联依赖
业务逻辑关系集中控制分散控制
设计难度容易比较复杂
响应能力和并行工作量成反比
时效表现实时无要求
业务使用范围简单计算复杂计算
安全
应用领域小规模并行处理环境大规模、超大规模并行环境
系统稳定性

四、解耦
解耦的字面意思是解除耦合关系,但是在软件工程中,是不可能做到完全解耦的,因此,降低偶耦合度即可以理解为解耦。