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

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

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

    設計模式學習筆記(八)—Template Method模式

    Posted on 2007-11-28 20:36 flustar 閱讀(983) 評論(0)  編輯  收藏 所屬分類: Design Patterns

     《設計模式》一書對Template Method模式是這樣描述的:
     定義一個操作中算法的骨架,而將一些步驟延遲到子類中。不改變算法的結構而重新定義它的步驟。
     我的理解:定義一個抽象類或者說接口,在它的內部定義一些抽象的方法(供TemplateMethod調用的步驟)和一個TemplateMethod方法(非抽象方法),封裝了這些抽象方法的接口或抽象類就是骨架。而將它的實現延遲到子類中,也就是用子類實現它。不改變算法的結構而重新定義它的步驟,也就是改寫或者實現父類的這些非TemplateMethod的抽象方法。下面給出一個例子:
    abstract class QueryTemplate{
     public void doQuery(){  //Template Method
      formatConnect();
      formatSelect();
     }
      protected abstract void formatConnect();
      protected abstract void formatSelect();
    }
    class OracleQT extends QueryTemplate{
     public void formatConnect() {
      System.out.println("格式化Qracle數據庫連接");
     }
     public void formatSelect() {
      System.out.println("格式化Oracle數據庫查詢");
     }
    }
    class MysqlQT extends QueryTemplate{
     public void formatConnect() {
      System.out.println("格式化Mysql數據庫連接");
     }
     public void formatSelect() {
      System.out.println("格式化Mysql數據庫查詢");
     }
    }
    public class client {
     public static void main(String[] args) {
      QueryTemplate oracleQT=new OracleQT();
      oracleQT.doQuery();
      
      QueryTemplate mysqlQT=new MysqlQT();
      mysqlQT.doQuery();
     }
    }
    輸出結果:
    格式化Qracle數據庫連接
    格式化Oracle數據庫查詢
    格式化Mysql數據庫連接
    格式化Mysql數據庫查詢
    在這個例子中,我們定義了一個骨架QueryTemplate,在它的內部定義了一個Template Method,和一些步驟(抽象方法),使用Template Method來調用這些步驟。步驟是在子類中實現的。
    小結:有時候,會遇到由一系列步驟構成的過程需要執行。這個過程從高層次上看是相同的,但有些步驟的實現可能不同。正如,查詢SQL數據庫從高層次上看過程是相同的,但某些細節比如如何連接數據庫則可能因平臺等細節的不同而不同。通過Template Method模式,我們可以先定義步驟序列,然后覆蓋那些需要改變的步驟。

     

    posts - 146, comments - 143, trackbacks - 0, articles - 0

    Copyright © flustar

    主站蜘蛛池模板: 亚洲阿v天堂在线2017免费| 免费观看一区二区三区| 国产亚洲色婷婷久久99精品91| a级毛片免费高清毛片视频| 亚洲福利秒拍一区二区| 特级淫片国产免费高清视频| 国产精品免费视频观看拍拍| 亚洲国产韩国一区二区| 国产成人免费ā片在线观看| 光棍天堂免费手机观看在线观看 | 亚洲精品色午夜无码专区日韩| 7x7x7x免费在线观看| 偷自拍亚洲视频在线观看99| 亚洲国产精品久久66| 永久免费av无码网站大全| 久久国产精品免费观看| 国产成人人综合亚洲欧美丁香花| 亚洲αv在线精品糸列| 国产午夜影视大全免费观看| 久久综合国产乱子伦精品免费| 国产亚洲精品仙踪林在线播放| 久久精品国产亚洲77777| 亚洲欧洲自拍拍偷精品 美利坚| 91香蕉成人免费网站| 中文字幕无码免费久久9一区9 | 特级毛片爽www免费版| 国产精品亚洲综合五月天| 国产精品亚洲片在线观看不卡| 天天操夜夜操免费视频| 免费无码VA一区二区三区| 午夜在线免费视频 | 国偷自产一区二区免费视频| 99亚洲乱人伦aⅴ精品| 亚洲人成免费网站| 亚洲综合一区二区国产精品| 国产亚洲av片在线观看18女人| 免费看的黄色大片| 久久久久久国产精品免费无码| 一个人看的www视频免费在线观看| 亚洲熟妇AV日韩熟妇在线| 亚洲国产日韩在线一区|