【设计模式】行为型10中介者模式(Mediator Pattern)
中介者模式(Mediator Pattern)
这里笔者完全参考了:http://www.runoob.com/design-pattern/mediator-pattern.html,案例精简清晰,直指核心-中介对象。多处直接转载,特此说明。
定义:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
主要解决:对象与对象之间存在大量的关联关系,这样势必会导致系统的结构变得很复杂,同时若一个对象发生改变,我们也需要跟踪与之相关联的对象, 同时做出相应的处理。
uml:
代码:
1、中介者对象:
package com.pat.mediator;
/**
* 中介者对象
* 使用此对象封装对象的交互
* @author ZX
*/
public class ChatRoom {
public static void sendMsg(User user,String msg) {
System.out.println(user.getName()+":"+msg);
}
}
2、用户对象:
package com.pat.mediator;
/**
* 中介所关联的对象
* @author ZX
*/
public class User {
//用户名称
private String name;
//发送消息
public void sendMsg(String msg) {
ChatRoom.sendMsg(this, msg);
}
//getset
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
//构造防范
public User() {
}
public User(String name) {
super();
this.name = name;
}
}
3、测试类:
package com.pat.mediator;
public class Test {
public static void main(String[] args) {
User tom = new User("tom");
User jack = new User("jack");
User rose = new User("rose");
tom.sendMsg("rose!marry me!");
jack.sendMsg("marry me!");
rose.sendMsg("get out!");
}
}
【设计模式】行为型10中介者模式(Mediator Pattern)的更多相关文章
- 设计模式系列之中介者模式(Mediator Pattern)——协调多个对象之间的交互
说明:设计模式系列文章是读刘伟所著<设计模式的艺术之道(软件开发人员内功修炼之道)>一书的阅读笔记.个人感觉这本书讲的不错,有兴趣推荐读一读.详细内容也可以看看此书作者的博客https:/ ...
- 乐在其中设计模式(C#) - 中介者模式(Mediator Pattern)
原文:乐在其中设计模式(C#) - 中介者模式(Mediator Pattern) [索引页][源码下载] 乐在其中设计模式(C#) - 中介者模式(Mediator Pattern) 作者:weba ...
- 二十四种设计模式:中介者模式(Mediator Pattern)
中介者模式(Mediator Pattern) 介绍用一个中介对象来封装一系列的对象交互.中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互. 示例有一个Messa ...
- 中介者模式(Mediator Pattern)
用于减少多个对象或类之间的通信复杂性. 此模式提供了一个中介类,它通常处理不同类之间的所有通信,并支持通过松散耦合来维护代码.中介者模式属于行为模式类别. 实现实例 在这里通过一个聊天室的示例来演示中 ...
- [设计模式] 17 中介者模式 Mediator Pattern
在GOF的<设计模式:可复用面向对象软件的基础>一书中对中介者模式是这样说的:用一个中介对象来封装一系列的对象交互.中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变 ...
- 23种设计模式--中介者模式-Mediator Pattern
一.中介者模式的介绍 中介者模式第一下想到的就是中介,房子中介,婚姻中介啊等等,当然笔者也希望来个婚姻中介给我介绍一个哈哈哈,,回归正题中介者模式分成中介者类和用户类,根据接口编程的方式我们再 ...
- 4.7 《硬啃设计模式》 第24章 麻烦的多角关系 - 中介者模式(Mediator Pattern)简介
在Windows程序中,有时候界面控件之间的交互会很麻烦,如:A控件显示什么的时候,B控件要显示什么,另外C控件要不可用,同样其它控件也会有类似的复杂要求.控件与控件之间很容易形成复杂的多角关系了.现 ...
- 设计模式之二十一:中介者模式(Mediator)
中介者模式:定义了一个对象.用来封装一系列对象的交互.中介者模式通过使对象之间不必显式引用减少了对象之间的耦合,而且同意你独立改变它们之间的交互. 中介者模式就是将对象之间的交互封装在了一个独立的对象 ...
- 18.中介者模式(Mediator Pattern)
using System; namespace Test { class Program { /// <summary> /// 中介者模式,定义了一个中介对象来封装一系列对象之间的交互关 ...
随机推荐
- DDD实战6 单元测试
1.在Products解决方案文件夹下面新建一个项目 一个单元测试项目 Product.Tests.
- Swift程式语言(中国版)(8.8 %)
前言 今天Apple宣布了一项新的编程语言Swift.还提供了一个近400页The Swift Programming Language(Swift程式语言). 虽然我没有开发者账户.不能实际锻炼机S ...
- 重构qDebug()<<,使log输出到文件
重构qDebug()<<,使log输出到文件 #include <QProcessEnvironment> #include <QDateTime> #includ ...
- XenServer重置存储管理SR至Ext3
Xenserver默认安装到本地磁盘,它是基于本地磁盘上Linux的LVM所管理,在xenserver创建为LVM Typer的本地SR,xenserver在LVM上不支持Thin Provision ...
- 黑科技 —— OTG 线
OTG:On-The-Go的缩写: OTG 可将鼠标.键盘等一切终端(terminal)连接起来: OTG 技术就是实现在没有 Host 的情况下,实现从设备间的数据传送.(支持传送,显然也支持要求更 ...
- cocos2d-x 源代码分析 : Ref (CCObject) 源代码分析 cocos2d-x内存管理策略
从源代码版本号3.x.转载请注明 cocos2d-x 总的文件夹的源代码分析: http://blog.csdn.net/u011225840/article/details/31743129 1.R ...
- MySQL 执行原生sql
public class MySqlHelper { private YourContext _context; public MySqlHelper(YourContext context) { _ ...
- SQLite 的版本问题
原文:SQLite 的版本问题 在SQLite官方网站上的下载包真可以看花眼.不同的.net版本,还有不同的平台,开发和发布时需要加以注意. 在网上搜了搜,早有人注意到了. 关于在.Net开发中使用S ...
- C# WebClient的使用
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...
- 【shell】分享高通平台刷版本简单的一个shell脚本
#!/bin/shadb wait-for-deviceadb reboot bootloaderecho "start download"wait 5sudo fastboot ...