耦合

耦合是两个或者多个组件之间相互关联,如果两个组件或模块之间的耦合度越高,则会导致维护成本越高。因此,在系统架构的设计过程中,应当减少各模块之间的耦合度,提高模块的可维护性。

紧耦合

紧耦合可以看成是C/S模型,如图所示:

  • 优点:架构和设计简单、开发周期短、能够快速投入生产

  • 缺点:

    随着规模的增大,系统的稳定性会逐渐变差。

    1. 同步操作会导致网络资源消耗大。同步的等待过程中有大段时间是空闲的,这造成对资源的浪费。
    2. 安全力度差,由于服务器直接向外暴露到客户机,容易引发网络攻击行为。
    3. 程序代码之间关联度高,不利于模块化处理。

松耦合

松耦合可以看成是CAS模型,亦就是在CS之间放置一个代理,如图所示:

在新的架构下,客户机角色不变,由代理服务器承担与客户机之间的通信,而服务器位于代理服务器后面,对客户机而言是不可见的。

优点如下:

  • 提升了对多任务并行处理能力,实现负载自适应机制。
  • 保护了对服务器端的安全
  • 异步操作减少网络资源消耗和操作关联
  • 提升了系统的可维护性

松耦合和紧耦合的对比

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

解耦

解耦由字面可得知是解除耦合关系,但在软件工程中,是不可能做到完全解耦的,降低耦合度时即可理解为解耦。