<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    java學習

    java學習

     

    設計模式之外觀模式

    為子系統中的一組接口提供一個一致的界面,Facade模式定義了一個高層接口,這個接口使得這一子系統更加容易使用。
    1.當你要為一個復雜子系統提供一個簡單接口時。子系統往往因為不斷演化而變得越來越 復雜。大多數模式使用時都會產生更多更小的類。這使得子系統更具可重用性,也更容 易對子系統進行定制,但這也給那些不需要定制子系統的用戶帶來一些使用上的困難。 Facade可以提供一個簡單的缺省視圖,這一視圖對大多數用戶來說已經足夠,而那些需 要更多的可定制性的用戶可以越過facade層。
     2.客戶程序與抽象類的實現部分之間存在著很大的依賴性。引入facade將這個子系統與客 戶以及其他的子系統分離,可以提高子系統的獨立性和可移植性。
     3.當你需要構建一個層次結構的子系統時,使用facade模式定義子系統中每層的入口點。 如果子系統之間是相互依賴的,你可以讓它們僅通過facade進行通訊,從而簡化了它們 之間的依賴關系。
    例子:
    外觀類:
    public class Facade {
         ServiceA sa;
            
            ServiceB sb;
            
            ServiceC sc;
            
            public Facade() {
                sa = new ServiceAImpl();
                sb = new ServiceBImpl();
                sc = new ServiceCImpl();
            }
            
            public void methodA() {
                sa.methodA();
                sb.methodB();
            }
            
            public void methodB() {
                sb.methodB();
                sc.methodC();
            }
            
            public void methodC() {
                sc.methodC();
                sa.methodA();
            }

    }
    接口和接口的實現類:
    public interface ServiceA {
        void methodA() ;
    }
    public class ServiceAImpl implements ServiceA{

        @Override
        public void methodA() {
            System.out.println("這是服務A");        
        }
    }
    public interface ServiceB {
        void methodB() ;
    }
    public class ServiceBImpl implements ServiceB{

        @Override
        public void methodB() {
             System.out.println("這是服務B");        
        }
    }
    public interface ServiceC {
        void methodC() ;
    }
    public class ServiceCImpl implements ServiceC{

        @Override
        public void methodC() {
             System.out.println("這是服務C");        
        }
    }
    測試類:
    public class Test {
        public static void main(String[] args) {
            ServiceA sa = new ServiceAImpl();
            ServiceB sb = new ServiceBImpl();       
            sa.methodA();
            sb.methodB();       
            System.out.println("========");
            //facade
            Facade facade = new Facade();
            facade.methodA();
            facade.methodB();
            facade.methodC();
        }

    }

    posted on 2013-04-23 13:54 楊軍威 閱讀(123) 評論(0)  編輯  收藏


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


    網站導航:
     

    導航

    統計

    常用鏈接

    留言簿

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲精品韩国美女在线| 日本免费人成视频播放| 国产成人免费片在线视频观看| 亚洲成人激情在线| 老司机午夜性生免费福利| 免费H网站在线观看的| 亚洲一区二区三区日本久久九| 岛国岛国免费V片在线观看| 日韩亚洲国产二区| 亚洲av无码专区在线电影| 在线观看免费a∨网站| 亚洲一区二区三区在线网站| 日韩免费无码视频一区二区三区 | jizz日本免费| 亚洲国产综合无码一区二区二三区| 色偷偷噜噜噜亚洲男人| 久久久久久久久亚洲| 国产大片91精品免费看3| 91香焦国产线观看看免费| 亚洲视频免费一区| 97免费人妻无码视频| 久久乐国产综合亚洲精品| 精品国产麻豆免费网站| 久久亚洲欧美国产精品| 亚洲色图在线播放| 成人黄页网站免费观看大全| 亚洲av无码偷拍在线观看| 91亚洲国产成人精品下载| 国产乱辈通伦影片在线播放亚洲| 51午夜精品免费视频| 中文无码亚洲精品字幕| 一区二区三区亚洲| 亚洲日本va中文字幕久久| 性无码免费一区二区三区在线| 亚洲人成777在线播放| 白白国产永久免费视频| 91免费国产精品| 久久青草精品38国产免费| 亚洲 日韩 色 图网站| 亚洲黄色高清视频| 亚洲Av无码专区国产乱码DVD|