MediatorPattern中介者模式

Stella981
• 阅读 350

中介者模式

1.定义

使用一个中介对象封装一系列的对象交互,中介者使用对象不需要显式的相互作用,从而实降现低耦合度,且可以独立改变被封装的一些列对象之间的交互。

中介者模式也叫做调停者模式:对象之间的依赖就像战争,很混乱,加入一个中心,所有对象都和中心交流,接受中心的调停处理。

中介者模式通常有4个角色

AbstractColleague抽象同事类:抽象中介者角色。指定一个中介者用于与其它同事之间的通信。

public abstract class AbstractColleague { protected AbstractMediator mediator; public AbstractColleague(AbstractMediator mediator) {  this.mediator = mediator; }}

AbstractMediator抽象类:抽象中介者角色。定义统一的接口,用于各同事角色之间的通信。

public abstract class AbstractMediator { protected ColleagueOne colleagueOne; protected ColleagueTwo colleagueTwo; public ColleagueOne getColleagueOne() {  return colleagueOne; } public ColleagueTwo getColleagueTwo() {  return colleagueTwo; } public void setColleagueOne(ColleagueOne colleagueOne) {  this.colleagueOne = colleagueOne; } public void setColleagueTwo(ColleagueTwo colleagueTwo) {  this.colleagueTwo = colleagueTwo; } public abstract void executeOne(); public abstract void executeTwo();}

Colleague类具体同事类:同事角色。每一个同事角色都知道中介者角色,每一个同事角色的行为分为两种:一种是自身的行为,用来改变自身的状态或处理自身的业务逻辑,并且与其它同事和中介者没有任何依赖关系,叫做自发行为。另一种是必须依赖中介者才能完成的行为,叫做依赖方法。

public class ColleagueOne extends AbstractColleague { public ColleagueOne(AbstractMediator mediator) {  super(mediator); } /**  * 自发行为  */ public void selfMethodOne() {  // 处理自己的业务逻辑  System.out.println("ColleagueOne的自有方法"); } /**  * 依赖行为  */ public void depMethodOne() {  // 处理自己的业务逻辑  System.out.println("ColleagueOne的依赖方.........
点赞
收藏
评论区
推荐文章
观察者模式在spring中的应用
作者:王子源1观察者模式简介1.1定义指多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。这种模式有时又称作发布订阅模式、模型视图模式,它是对象行为型模式。
Wesley13 Wesley13
2年前
java实现23种设计模式之责任链模式
顾名思义,责任链模式(ChainofResponsibilityPattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。pa
Stella981 Stella981
2年前
Apache commons chain 初探
Apachecommonschain是什么Apachecommonchain是对责任链设计模式的改造封装,让使用者更加方便的使用。简单回顾一下责任链设计模式在阎宏博士的《JAVA与模式》一书中开头是这样描述责任链(ChainofResponsibility)模式的:责任链模式是一种对象的行为模式。在
Wesley13 Wesley13
2年前
JavaWeb实现文件上传与下载
1\.增强HttpServletResponse对象  1.实现一个增强的HttpServletResponse类,需要继承javax.servlet.http.HttpServletRequestWrapper类,通过重写自己需要增强的方法来实现(这种模式就叫做装饰者模式),使用该增强类在
Wesley13 Wesley13
2年前
Java设计模式
一、策略模式(让算法与对象独立)    策略模式定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。!(http://static.oschina.net/uploads/space/2016/1108/180244_oYm8_1789589.png)二、观察者模式(让你的对象知悉现状) 
Wesley13 Wesley13
2年前
Java设计模式之责任链模式
引入责任链模式责任链模式顾名思义,责任链模式(ChainofResponsibilityPattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会
Wesley13 Wesley13
2年前
Java中jdk代理和cglib代理
代理模式给某一个对象提供一个代理,并由代理对象控制对原对象的引用。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。在Java中代理模式从实现方式上可以分为两个类别:静态代理和动态代理静态代理:也就是我们学习设计模式之代理模式时常见的事例,具体不在赘述,参见:
Wesley13 Wesley13
2年前
Java设计模式之命令模式
介绍命令模式是一种行为型设计模式。在命令模式中,所有的请求都会被包装成为一个对象。参考了一下其他关于命令模式的文章,其中有谈到说是可以用不同的请求对客户进行参数化。对这句话的理解是,因为将请求封装成为对象,所以客户的所有操作,其实就是多个命令类的对象而已,即参数化了。命令模式的最大的特点就是将请求的调用者与请求的最终执行者进行了解
Wesley13 Wesley13
2年前
23种设计模式(面向对象语言)
一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。创建型模式是用来创建对象的模式,抽象了实例化的过程,帮助一个系统独立于其他关联对象的创建、组合和表示方式。所有的创建型模式都有两个主要功能:  1.将系统所使用的具体类的信息封装起来  2.隐藏
Stella981 Stella981
2年前
Mediator_中介者模式_PHP语言描述
中介者模式,我的理解是,你的项目中存在许多级别平等的同事类实例,并且这些实例之间都需要有不同程度的各种交互操作活动。这个时候可以使用中介者模式来降低各同事类的耦合程度,每个同事类都只关心自己需要做什么,把耦合交互的工作交给中介类来完成。这里用了一个模拟电脑播放CD的例子来讲述这个问题。这是一个标准定义中得中介者模式用例,在实际应用着,可能不需要所有的同事