java學習

          java學習

           

          設計模式之中介者模式

          Java深入到一定程度,就不可避免的碰到設計模式這一概念,了解設計模式,將使自己對java中的接口或抽象類應用有更深的理解.設計模式在java的 中型系統中應用廣泛,遵循一定的編程模式,才能使自己的代碼便于理解,易于交流,Mediator(中介者模式)模式是比較常用的一個模式.
           

            Mediator中介者模式,當多個對象彼此間都有聯系的時候,我們就可以應用Mediator將對象間的多對多關系轉換為一對多的關系,這樣做,可以使各個對象間的耦合松散。統一管理對象間的交互。但也可能使得Mediator對象成為一個系統中的龐然大物,難以維護
             使用場景:集中負責維護對象模型的關系完整性 以及需要 封裝對象間交互方式的時候.
             其實MVC中的controller就是一種Mediator,是UI層 和后端應用sevice層間的中介者。中介者將交互的復雜性變為中介者的復雜性

          例子如下:
          業務類的接口:
          public interface Colleague {
          void action();
          }
          業務類的2個實現類:
          public class ColleagueA implements Colleague{

              @Override
              public void action() {
                   System.out.println("普通員工努力工作aaaaaaa");        
              }
          }
          public class ColleagueB implements Colleague{

              @Override
              public void action() {
                   System.out.println("前臺注意了bbbb");        
              }
          }
          中介者接口:
          public interface Mediator {
          void notice(String content);
          }

          public class ConcreteMediator implements Mediator{
               private ColleagueA ca;
                  
                  private ColleagueB cb;
                  
                  public ConcreteMediator() {
                      ca = new ColleagueA();
                      cb = new ColleagueB();
                  }
                  
                  public void notice(String content) {
                      if (content.equals("boss")) {
                          //老板來了, 通知員工A
                          ca.action();
                      }
                      if (content.equals("client")) {
                          //客戶來了, 通知前臺B
                          cb.action();
                      }
                  }

          }

          測試類:
          public class Test {
               public static void main(String[] args) {
                      Mediator med = new ConcreteMediator();
                      //老板來了
                      med.notice("boss");
                      
                      //客戶來了
                      med.notice("client");
                  }

          }
          當客戶端傳過來的字符串不一樣時,中介者類根據字符串實現不同的業務類的對象,處理數據。

          posted on 2013-05-27 17:02 楊軍威 閱讀(365) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          導航

          統計

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 绿春县| 星座| 克什克腾旗| 九寨沟县| 天气| 兴宁市| 保靖县| 阳城县| 田阳县| 界首市| 汉阴县| 怀安县| 博罗县| 城口县| 临桂县| 芦山县| 城步| 山西省| 双鸭山市| 堆龙德庆县| 昭通市| 天峻县| 绿春县| 石阡县| 留坝县| 思茅市| 鹤壁市| 富阳市| 辛集市| 湟源县| 开平市| 成武县| 偏关县| 沈丘县| 汉沽区| 炎陵县| 泌阳县| 宜兰县| 大同市| 黄山市| 常山县|