【HeadFirst 设计模式学习笔记】17 中介者(Mediator)模式拾零

简介:

.概述

该模式在Head First中没有介绍,它用于通过一个中介者完成对象间通信的解耦。当代码中出现大量有着其他对象信息的对象时就可以使用这个模式。

在这个模式中,有如下的参与者:

中介者(Mediator):抽象定义了“同事”(colleagues,稍后有定义)们通信的接口。

具体中介者(Concrete Mediator):实现了“同事”间的通信接口。

同事(Colleague):参与通信的实体抽象。

具体同事(Concrete Colleague):实现的参与通信的实体。

简单的说,通过同事持有中介者(其中完成了同事间通信的接口)的引用而实现了同事间的通信。

其中,中介者和同事的抽象并不是必须的,只是为了面向接口编程的抽象需要。

2.实例

我们用一个原型系统简单演示一下这个模式

首先我们定义一个抽象中介者,其中有通信接口Send:

 
 
 
 
 
 

然后我们对其进行实现:

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

中介者里有通信的双方同事,在同事里有一个Notify方法,表示提示收到一个消息。

然后我们定义一个抽象同事类:

 
 
 
 
 
 
 
 
 
 
 
 

同事类中要持有中介者的引用。

进而我们定义两个具体的同事:

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

现在我们开始使用这个中介者完成两个同事间的通信:

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

3.UML总结

Mediator Pattern_2

 




本文转自gnuhpc博客园博客,原文链接:http://www.cnblogs.com/gnuhpc/archive/2012/12/21/2827645.html,如需转载请自行联系原作者

相关文章
|
5天前
|
设计模式 JavaScript 前端开发
js设计模式【详解】—— 构造函数模式
js设计模式【详解】—— 构造函数模式
15 6
|
5天前
|
设计模式 Java
Head First设计模式学习笔记
Head First设计模式学习笔记
|
11天前
|
设计模式 存储 算法
设计模式学习心得之五种创建者模式(2)
设计模式学习心得之五种创建者模式(2)
14 2
|
11天前
|
设计模式 搜索推荐
工厂方法模式-大话设计模式
工厂方法模式-大话设计模式
9 1
|
11天前
|
设计模式 安全 Java
设计模式学习心得之五种创建者模式(1)
设计模式学习心得之五种创建者模式(1)
7 0
|
2月前
|
设计模式 Java API
【设计模式】JAVA Design Patterns——Combinator(功能模式)
【设计模式】JAVA Design Patterns——Combinator(功能模式)
|
2月前
|
设计模式 监控 Java
【设计模式】JAVA Design Patterns——Circuit Breaker(断路器模式)
【设计模式】JAVA Design Patterns——Circuit Breaker(断路器模式)
|
2月前
|
设计模式 Java 程序员
【设计模式】JAVA Design Patterns——Bytecode(字节码模式)
【设计模式】JAVA Design Patterns——Bytecode(字节码模式)
|
16天前
|
设计模式 Java 数据库连接
Java设计模式之工厂方法模式详解
Java设计模式之工厂方法模式详解
|
17天前
|
设计模式 算法
行为型设计模式之模板模式
行为型设计模式之模板模式