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

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

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

    離弦之Ray

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      55 Posts :: 0 Stories :: 33 Comments :: 0 Trackbacks
     

    Template method pattern

    從這個模式的名字就可以知道個大概,Template說明這個模式有一個模版,子類都要按照父類列出的大綱來干活。在這個模式中,父類通常是abstract的。為什么不用接口?因為對某些所有子類都要用到的方法,父類中就給出了代碼,而接口中是不能有具體實現代碼的。

    父類中有一個總的方法就是所謂的template method,這個方法通常被聲明為final,這樣子類就無法override它,保證了它的權威性。這個template method調用其它方法,這些“其它方法”包括了三個類型:

    第一種,是abstract類型,子類需要根據自己的情況實現這部分代碼;

    第二種,是final型的,這種方法父類把它寫死了,子類必須遵守;

    第三種,就是普通方法,是optional,子類可以延用父類的方法,也可以override掉它,寫自己的代碼,這種optional的方法給它一個名字叫做hook

    這個父類通常是這種形勢。

    abstract class AbstractClass{

      final void templateMethod(){

          a();

          b();

          c();

          …

    }

        abstract void a();

        final void b(){}

        void c(){}

    }

    應該說這個模式既蘊含著權威性和自由性。

    Iterator and Composite Patterns

           這個模式的研究對象是Collection,包括ArrayListArray甚至還有Hashmap等等一切java里面的集合對象。Iterator的理念是把集合對象中的遍歷等功能獨立抽取出來,實現一個Iterator的接口,主要實現next()hasNext()兩個方法,這些東西和數據結構里面的東西基本一樣。

    而以此為基礎的Composite Pattern其實就是數據結構里面樹的概念,所以這里的東西還是找本數據結構書看看更好。

    The State Pattern

           初看這個模式,發現里面有一個類似UML中狀態圖的東西,如其名字,這個模式主要描述如何處理應用中出現的“狀態”。

           解決方式是這樣的:

    .      第一步,創建一個叫做State的接口,里面包含什么東西呢?記得UML狀態圖中發生狀態轉換時箭頭上面那些改變的條件?把這些條件全部轉化為方法,表示當這個條件發生時,狀態該怎么變。

           第二步,每個具體的concreteState都要實現都要實現State這個接口。怎么實現?當然,state不是獨立出現的,總有一個把它作為參數的類,里面有個私有變量保存當前的狀態,暫且就把它稱作currentState吧。接口中定義的方法,在concreteState中這樣實現:每個方法根據條件定義,將currentState改成相應的狀態。

           以上其實就是State Pattern的精髓。

    posted on 2007-09-22 13:51 離弦之ray的技術天空 閱讀(222) 評論(0)  編輯  收藏 所屬分類: Design Pattern
    主站蜘蛛池模板: 99精品视频免费| 亚洲AV无码一区二区乱子仑| 中文字幕免费在线视频| 免费又黄又爽的视频| 亚洲国产成人精品无码区花野真一 | 久久国产精品免费专区| 国产亚洲人成无码网在线观看| 中文字幕免费在线看线人动作大片| 亚洲综合另类小说色区色噜噜| 曰批全过程免费视频观看免费软件| 免费国产综合视频在线看 | 免费h片在线观看网址最新| 亚洲国产片在线观看| 成人性生交视频免费观看| 精品国产亚洲第一区二区三区| 国产成人aaa在线视频免费观看| 免费无码婬片aaa直播表情| 亚洲一区爱区精品无码| 美女被cao网站免费看在线看| 亚洲黄色网址在线观看| 无人在线观看完整免费版视频| 亚洲国产av玩弄放荡人妇 | 国产一区二区三区免费看| 免费一级毛片在线播放视频免费观看永久 | 亚洲精品无码成人AAA片| 亚洲一区二区三区免费观看| 亚洲午夜在线播放| 国产免费看插插插视频| 中文字幕乱码一区二区免费| 亚洲宅男精品一区在线观看| xvideos亚洲永久网址| 永久免费A∨片在线观看| 亚洲中字慕日产2021| 一本久到久久亚洲综合| 99精品视频免费观看| 亚洲AV无码专区国产乱码不卡| 亚洲精品午夜国产VA久久成人| 亚洲第一成年免费网站| 中文字幕久精品免费视频| 亚洲AV成人精品日韩一区| 亚洲AV永久纯肉无码精品动漫|