软件设计模式及体系结构之中介者模式

前言

在这里插入图片描述

中介者模式概述

√QQ聊天的两种方式
1)用户与用户直接聊天,用户与用户之间存在多对多的联系,这将导致系统中用户之间的关系非常复杂用户如果要将相同的信息或文件发送给其他所有用户,必须一个一个地发送
2)通过QQ群聊天,用户只需要将信息或文件发送到或上传为群共享文件即可,群的作用就是将发送者所发送的信息和文件转发给每一个接收者,将极大地减少系统中用户之间的两两通信

软件开发

在这里插入图片描述

网状结构:多对多联系将导致系统非常复杂,几乎每个对象都需要与其他对象发生相互作用,而这种相互作用表现为一个对象与另外一个对象的直接耦合,这将导致一个过度耦合的系统
在这里插入图片描述
星型结构:中介者模式将系统的网状结构变成以中介者为中心的星型结构,同事对象不再直接与另一个对象联系,它通过中介者对象与另一个对象发生相互作用。系统的结构不会因为新对象的引入带来大量的修改工作

1.中介者模式的定义

中介者模式:定义一个对象来封装一系列对象的交互.中介者模式使各对象不需要显式地用,从而使其耦合松散,而且让你可以独立地改变它们之间的交互
1.又称为调停者模式
2.在中介者模式中,通过引入中介者来简化对象之间的复杂交互
3.中介者模式是迪米特法则的一个典型应用
4.对象之间多对多的复杂关系转化为相对简单的一对多关系

2.中介者模式的结构

在这里插入图片描述
中介者模式包含以下4个角色:
Mediator(抽象中介者)
ConcreteMediator(具体中介者)
Colleague(抽象同事类)
Concretecolleague(具体同事类)

中介者类的职责
中转作用(结构性): 各个同事对象不再需要显式地引用其他同事,当需要和其他同事进行通信时,可通过中介者来实现间接调用
协调作用(行为性): 中介者可以更进一步的对同事之间的关系进行封装,同事可以一致地和中介者进行交互,而不需要指明中介者需要具体怎么做,中介者根据封装在自身内部的协调逻辑对同事的请求进行进一步处理,将同事成员之间的关系行为进行分离和封装
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

Guess you like

Origin blog.csdn.net/lpblog/article/details/121722563
Recommended