劍心博客

          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 閱讀(128) 評論(0)  編輯  收藏 所屬分類: 轉來好帖java設計模式
          主站蜘蛛池模板: 南昌县| 舞阳县| 项城市| 公主岭市| 封开县| 任丘市| 义马市| 西贡区| 舞钢市| 尼木县| 台中县| 麦盖提县| 永宁县| 精河县| 香港 | 六安市| 望江县| 新田县| 清远市| 沙洋县| 岱山县| 贵溪市| 巴林右旗| 竹北市| 共和县| 丹凤县| 徐闻县| 额尔古纳市| 五常市| 彝良县| 宝丰县| 尖扎县| 确山县| 汾西县| 东乡县| 西充县| 兰州市| SHOW| 承德县| 朝阳市| 金湖县|