一句话

又翻译成调停者模式。

就是类似房产中介, 买房、卖方不需要双方直接交涉,交给中介。

概括

解析

MEDIATOR—四个MM打麻将,相互之间谁应该给谁多少钱算不清楚了,幸亏当时我在旁边,按照各自的筹码数算钱,赚了钱的从我这里拿,赔了钱的也付给我,一切就OK啦,俺得到了四个MM的电话。
  调停者模式:调停者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显作用。从而使他们可以松散偶合。当某些对象之间的作用发生改变时,不会立即影响其他的一些对象之间的作用。保证这些作用可以彼此独立的变化。调停者模式将多对多的相互作用转化为一对多的相互作用。调停者模式将对象的行为和协作抽象化,把对象在小尺度的行为上与其他对象的相互作用分开处理。

实例

举一个房产交易的例子,现在二手房市场上超过5年的房子进行交易就不需要缴纳房产税了。

包含的类文件:

一个中介的接口 (Mediator.java)

一个中介的实现类:(MediatorImpl.java)

一个房主的接口 (HouseOwner.java)

两类房主的类 (HouseOwnerA.java, HouseOwnerB.java)

测试主类: (TestMain.java)

/**   * @author oscar999   * @date 2015-1-6* @version V1.0   */
package designptn.mediator;public abstract class Mediator {public abstract void sellHouse(String houseType);
}
/**   * @author oscar999   * @date 2015-1-6* @version V1.0   */
package designptn.mediator;/*** @author Administrator**/
public class MediatorImpl extends Mediator {private HouseOwnerA ha;private HouseOwnerB hb;public MediatorImpl(){ha = new HouseOwnerA();hb = new HouseOwnerB();}@Overridepublic void sellHouse(String houseType) {// TODO Auto-generated method stubif(houseType.equals("typeA")){ha.sell();}else if(houseType.equals("typeB")){hb.sell();}}}
/**   * @author oscar999   * @date 2015-1-6* @version V1.0   */
package designptn.mediator;/*** @author Administrator* */
public abstract class HouseOwner {public abstract void sell() ;}
/**   * @author oscar999   * @date 2015-1-6* @version V1.0   */
package designptn.mediator;/*** @author Administrator* */
public class HouseOwnerA extends HouseOwner {@Overridepublic void sell() {// TODO Auto-generated method stubSystem.out.println("Sell house with Tax");}}
/**   * @author oscar999   * @date 2015-1-6* @version V1.0   */
package designptn.mediator;/*** @author Administrator**/
public class HouseOwnerB extends HouseOwner {@Overridepublic void sell() {// TODO Auto-generated method stubSystem.out.println("Sell house without Tax");}}
/**   * @author oscar999   * @date 2015-1-6* @version V1.0   */
package designptn.mediator;/*** @author Administrator**/
public class TestMain {public static void main(String[] args) {// TODO Auto-generated method stubMediator mediator = new MediatorImpl();mediator.sellHouse("typeA");mediator.sellHouse("typeB");}}

[设计模式-行为型]中介者模式(Mediator)相关推荐

  1. 【设计模式-行为型-中介者模式(Mediator)】

    概述 用一个中介对象来封装一系列的对象交互.中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互.     适用性 1.一组对象以定义良好但是复杂的方式进行通信.产生 ...

  2. 设计模式(10):行为型-中介者模式(Mediator)

    设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性. 毫无疑问,设计模式于 ...

  3. 《研磨设计模式》chap10 中介者模式Mediator(1)简介

    1. 使用场景 如果电脑没有主板,各个配件的关系为 有主板后: 2. 中介者模式简介:各对象通过中介者来交互 //Mediator.java public interface Mediator { p ...

  4. java mediator_《JAVA设计模式》之中介者模式(Mediator)

    在阎宏博士的<JAVA与模式>一书中开头是这样描述调停者(Mediator)模式的: 调停者模式是对象的行为模式.调停者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显引用.从 ...

  5. 《研磨设计模式》chap10 中介者模式Mediator(2)应用举例

    人员类和部门类之间的关系:删除一个人或一个部门时,需要同时删除人员类和部门类里的数据,增加操作也是如此. public class User{ private String userId; //用户编 ...

  6. 乐在其中设计模式(C#) - 中介者模式(Mediator Pattern)

    [索引页] [源码下载] 乐在其中设计模式(C#) - 中介者模式(Mediator Pattern) 作者:webabcd 介绍 用一个中介对象来封装一系列的对象交互.中介者使各对象不需要显式地相互 ...

  7. PHP设计模式之中介者模式(Mediator Pattern)了解下

    咱们先来看下中介者模式(Mediator Pattern)的定义,它就是,用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互, ...

  8. 设计模式.中介者模式Mediator

    定义 中介者模式(Mediator pattern) : 使用中介者模式来集中相关对象之间复杂的沟通和控制方式,使得这些对象不必相互明显引用.从而使它们可以较松散地耦合.当这些对象中的某些对象之间的相 ...

  9. 设计模式-中介者模式(Mediator Pattern)

    设计模式-中介者模式(Mediator Pattern) 文章目录 设计模式-中介者模式(Mediator Pattern) 一.定义 二.概念解释 三.场景 四.实现 1.类图 2.代码实现 五.总 ...

最新文章

  1. 零基础参加软件测试培训需要学多长时间
  2. python-冒泡排序
  3. 新手学测试----Unit Test(单元测试)
  4. 任意文件上传mysql_BigDump 跨站脚本、SQL注入、任意文件上传漏洞
  5. 曝!BAT大厂NLP学习进阶之法~
  6. HDU1520 Anniversary party 树形动态规划
  7. 各种模板(数据结构图论)
  8. Linux系统登录相关(命令,应急响应可以用到)
  9. UE3 预计算可见性
  10. List列表的万能的适配器
  11. 微信支付服务器验证的java_Java中的微信支付(3):API V3对微信服务器响应进行签名验证...
  12. 我们究竟需要什么!!?
  13. python——redis
  14. git 公钥提交代码_Git自由之章 - 关于SSH 公钥
  15. c语言编译器苹果下载,c语言编译器ios下载
  16. 联发科MT6763芯片设计,MT6763参考设计,MT6763处理器资料
  17. 信噪比(dB)换算公式
  18. 【图像去模糊】SDWNet: A Straight Dilated Network with Wavelet Transformation for image Deblurring
  19. 测试同学反馈,java 程序内存泄露,症状是RSS不断增加超过了jvm的xmx
  20. (3)数据链数层——计算机网络复习笔记

热门文章

  1. bootstrap 学习 ---css样式学习
  2. (原创)计算机视觉之数学原理-基础篇
  3. JS函数生成器,function* () {}
  4. editor does not contain a main type的解决方案
  5. CROC-MBTU 2012, Elimination Round (ACM-ICPC) E. Mishap in Club
  6. 怎样在Xcode 4下编译发布与提交App到AppStore?(转)
  7. MySQL的表类型和存储引擎
  8. Active MQ 传输 ObjectMessage 异常
  9. 教师节,老师最大的愿望是...
  10. 娓娓道来!那些BERT模型压缩方法(一)