劍心博客

          Just for java

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            1 隨筆 :: 29 文章 :: 1 評論 :: 0 Trackbacks

          設計模式之Mediator(中介者)

          板橋里人 http://www.jdon.com 2002/05/05

          模式實戰書籍《Java實用系統開發指南》

          Mediator中介者模式定義:
          用一個中介對象來封裝一系列關于對象交互行為.

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

          如何使用?

          首先 有一個接口,用來定義成員對象之間的交互聯系方式:

          public interface Mediator { }

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

          public class ConcreteMediator implements Mediator {

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

             ...

          }

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

          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之間任務的調節.

          MVC是J2EE的一個基本模式,View Controller是一種Mediator,它是Jsp和服務器上應用程序間的Mediator.

          ?

          posted on 2006-12-11 19:52 powerwind 閱讀(127) 評論(0)  編輯  收藏 所屬分類: 轉來好帖java設計模式
          主站蜘蛛池模板: 昌黎县| 乌兰浩特市| 都匀市| 惠安县| 舒兰市| 镇原县| 拜泉县| 盐津县| 无锡市| 霞浦县| 莱芜市| 阳山县| 盐源县| 元谋县| 仁怀市| 巴东县| 云安县| 昌乐县| 安阳市| 枞阳县| 延寿县| 宁武县| 安康市| 绵竹市| 神农架林区| 梨树县| 山丹县| 繁昌县| 南安市| 甘洛县| 铁力市| 钟山县| 锡林郭勒盟| 邻水| 东山县| 富顺县| 峨山| 灵寿县| 保靖县| 望谟县| 张掖市|