設計模式之Mediator(仲介者)

news/2024/7/4 1:32:06 标签: class, interface, 聊天, 框架, mvc, jsp
class="baidu_pl">
class="article_content clearfix">
class="htmledit_views">

Mediator定義:
用一個仲介物件來封裝一系列關於物件交互行爲。

爲何使用Mediator?
各個物件之間的交互操作非常多;每個物件的行爲操作都依賴彼此對方,修改一個物件的行爲,同時會涉及到修改很多其他物件的行爲,如果使用Mediator模式,可以使各個物件間的耦合鬆散,只需關心和 Mediator的關係,使多對多的關係變成了一對多的關係,可以降低系統的複雜性,提高可修改擴展性。

如何使用?

首先 有一個介面,用來定義成員物件之間的交互聯繫方式:

class="MsoNormalTable">

class="MsoNormal">public interface Mediator { }

Meiator具體實現,真正實現交互操作的內容:

class="MsoNormalTable">
public class ConcreteMediator implements Mediator {

   //假設當前有兩個成員.
  
private ConcreteColleague1 colleague1 = new ConcreteColleague1();
   private ConcreteColleague2 colleague2 = new ConcreteColleague2();

   ...

}

再看看另外一個參與者:成員,因爲是交互行爲,都需要雙方提供一些共同介面,這種要求在Visitor Observer等模式中都是相同的。

class="MsoNormalTable">
public class Colleague {
  
private Mediator mediator;
  
public Mediator getMediator() {
     
return mediator;
  
}

  
public void setMediator( Mediator mediator ) {
     
this.mediator = mediator;
  
}
}

public class ConcreteColleague1 { }

public class ConcreteColleague2 { }

每個成員都必須知道Mediator,並且和 Mediator聯繫,而不是和其他成員聯繫。

至此,Mediator模式框架完成,可以發現Mediator模式規定不是很多,大體框架也比較簡單,但實際使用起來就非常靈活。

Mediator模式在事件驅動類別應用中比較多,例如介面設計GUI.;聊天,消息傳遞等,聊天應用中,需要有一個MessageMediator,專門負責request/reponse之間任務的調節。

MVCJ2EE的一個基本模式,View Controller是一種Mediator,它是Jsp和伺服器上應用程式間的Mediator


 

http://www.niftyadmin.cn/n/607310.html

相关文章

书不在厚、事不在新

几年前,偶尔在朋友书桌上看到《21世纪的管理挑战》。第一感觉,这老头是典型的标题党啊,薄薄两百页的小书,也敢预测一个世纪的挑战,还是针对谁也搞不清楚的管理问题。这些年断断续续读过德鲁克近30本著作,收…

mysql 8k 16k_MySQL 5.6 Innodb数据页 16K vs 8K性能对比测试

从MySQL5.6开始,一个新参数innodb_page_size可以设置Innodb数据页为8K,4K,默认为16K。这个参数在一开始初始化时就要加入my.cnf里,如果已经创建了表,再修改,启动MySQL会报错。 参考手册: - 下面我针对16K和…

第八次网页前端培训笔记(javascript表单)

一、表单 二、获取表单元素-input元素 三、获取表单元素-单选与多选按钮 四、获取下拉选项 五、提交表单

今天是元宵节~~

今天是元宵节,晚上回来跟同学一起去乐购买了1袋800克(48只)饺子,2袋汤圆.因为锅小饺子和汤圆多缘故,决定分成2锅煮.煮好第一锅,2人都迫不及待的盛了吃,第1碗,偶很快就吃完了,觉得好像跟没吃一样,不过瘾.接着再煮第2锅,很快也煮好了&#xff0…

软考的心得

在本人的“每个程序员都应该经历一次软考的”一文中,强烈的分析了软考对我们程序员的重要性,尽管有些人觉得我在乱说;我还是那句话,任何一篇文章都有存在的价值;作为我们刚刚步入软件开发领域的初学者来说,…

【蜡笔小新全集】+动漫【灌蓝高手】 高速在线看

【蜡笔小新全集】每当你工作疲惫的时候,每当心情郁闷的时候,或者是无所事事的时候,看一看小新,听听他那傻傻的话,看看他可笑又可爱的动作,想想他们一家平常又快乐的生活,心里也便不由快乐起来。…

PR培训笔记

【 】 【 】 【 快捷键A, :一次性选择右侧所有素材///同时按Shift键可以选择单个轨道】 【 】

linux服务之NFS

本系列文章原则:灰常详细,灰常简单,新手包学包会!因其简单,故未涉及安全性方面的考虑呵!本实验服务器、客户端均为rhel-5-server-i386。NFS是Network File System的简写,即网络文件系统。应用于…