博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mediator-中介模式
阅读量:6696 次
发布时间:2019-06-25

本文共 1381 字,大约阅读时间需要 4 分钟。

解决问题

它解决的是对象之间复杂的交互问题。如果多个对象之间,需要进行某一种或者几种交互,那么可以通过一个中心(中介)来指导交互过程中行为,避免对象之间的复杂依赖关系。比如,生活中常间的租房。房东只需要将房源信息告诉中介,中介就会把信息推送给租房者,而且可以帮助租房者协调租金、签订合同、收取押金、矛盾处理等,避免房东和租房者之间的直接交互。

应用场景

常用在消息处理或者命令响应中。比如聊天室、聊天群。它需要将成员的消息推送给其它成员,一个成员只需要给中介就可以了,不知道一个个周知其它成员,这些动作由中介完成。

原理图

示例

这里就用租房的例子吧

@AllArgsConstructorpublic class Person {    private HouseAgent houseAgent;    public void receive(String message) {      System.out.print("recieved message");    }    // 发布 房源信息    public void sent(String message) {        houseAgent.operate(message);    }}public class HouseAgent {    private List
rentSeekers = Lists.newArrayList(); // 每天把新房源通知给组房者 public void operate(String message) { for (Person person : rentSeekers) { person.receive(message); } } public void addRentSeeker(Person person) { rentSeekers.add(person); } public static void main(String [] args) { HouseAgent houseAgent = new HouseAgent(); Person landLoad = new Person(houseAgent); houseAgent.addRentSeeker(new Person(houseAgent)); houseAgent.addRentSeeker(new Person(houseAgent)); houseAgent.addRentSeeker(new Person(houseAgent)); houseAgent.addRentSeeker(new Person(houseAgent)); houseAgent.addRentSeeker(new Person(houseAgent)); landLoad.sent("我有房子要出租"); }}复制代码

参考

https://en.wikipedia.org/wiki/Mediator_pattern

转载地址:http://smvoo.baihongyu.com/

你可能感兴趣的文章
调和生活前的问题
查看>>
Sencha-包装-Native APIs(本地API) (官网文档翻译28)
查看>>
asp.net HC框架 前后台交互及Ajax 及前后台分离开发 及 Demo
查看>>
【Latex】如何在Latex中插入伪代码 —— clrscode3e
查看>>
JProgressBar的用法
查看>>
the art of seo(chapter three)
查看>>
GWT 中实现“CSS Sprite”
查看>>
svn检出maven项目的步骤
查看>>
Mysql的使用基础
查看>>
kernel中使用debug file system进行调试
查看>>
4.彻底理解synchronized
查看>>
(0)资料官网【从零开始学Spring Boot】
查看>>
C# 4动态编程新特性与DLR剖析
查看>>
iOS Beta 升级或降级
查看>>
如何给开源的DUILib支持Accessibility
查看>>
在vmware下安装的linux系统上添加eth1
查看>>
Unix系列shell程序编写(下)
查看>>
多年珍藏的55w御剑字典
查看>>
Python实践之路7——计算器
查看>>
java中堆和栈的区别
查看>>