码迷,mamicode.com
首页 > 其他好文 > 详细

GOF23设计模式之中介者模式的理解

时间:2015-04-12 12:06:28      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:gof23   中介者模式   



中介模式Mediator
技术分享

  • 场景

假如没有总经理,下面有三个部门,财务部,市场部,研发部。财务部要发工资,让大家和对公司需要跟市场部和研发部都通气。市场部要接个新项目,需要研发部技术支持,需要财务部处理资金。市场部跟各个部门打交道。财务部发钱了,需要跑去和研发部和市场部打交道。研发部研发产品,市场部做调研,销售缺少资金又需要去找财务部。在这种情况下,虽然只有三个部门但是非常乱。者是因为在未说明的情况下,我们把这组织长了以中国网状结构的图形组织关系。多对对。

 

实际上,倘若公司有了总经理(当然现实世界也的确是这样,这样就非常好)各个部门有什么事情都报告总经理,总经理再通知相关部门。

这就是一个中介者模式。中经理起到一个中介协调的关系。

 




 
  
 
 
  
  
 


技术分享

 

 

 

 

 

 

 

 


核心:如果一个系统中对象之间的联系呈现为网状结构,对象之间存在大量的多对多关系,将导致关系及其复杂,这些对象成为同事关系

我们引入一个中介者模式,使各个同事对象只跟中介者对象打交道,将复杂的网络结构化解为如下的星型结构。

技术分享

中介者模式各个结构作用:

     抽象中介者,定义了同事对象到中介者对象的接口

     抽象同时类:

     具体中介者对象,实现抽象类的方法,它需要知道所有具体同时类,并从具体同事接受消息,向具体同事对象发出命令。

     具体同事类:每个具体同事只知道自己的行为,而不了解其他同事类的情况,但它们都认识中介者模式。

技术分享

中介者模式的本质:

     解耦多个同事对象之间的交互关系。每个对象都持有中介者对象的引用,只跟中介者对象打交道。我们通过中介者对象统一管理这些交互关系

 

开发中遇到场景:

     MVC模式(modelviewcontroller)。MV都和他打交道

     窗口游戏程序:窗口软件开发中窗口对象也是一个中介者对象。

     图形界面开发GUI中,多个组件之间的交互,可以通过引入一个中介者对象来解决。可以是整体的窗口对象或者DOM对象

     Java.lang.reflect.Method#invoke();

 

GOF23设计模式之中介者模式的理解

标签:gof23   中介者模式   

原文地址:http://blog.csdn.net/lk142500/article/details/45008297

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!