最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

舉例講解Java設(shè)計(jì)模式編程中模板方法模式的運(yùn)用實(shí)例

 更新時(shí)間:2016年05月05日 09:37:51   作者:匆忙擁擠repeat  
這篇文章主要介紹了Java設(shè)計(jì)模式編程中模板方法模式的運(yùn)用實(shí)例,模板方法模式強(qiáng)調(diào)基于繼承的代碼復(fù)用,需要的朋友可以參考下

模板方法模式定義為:

在一個(gè)方法中定義了一個(gè)算法的骨架或者步驟,而將一些步驟延遲到子類(lèi)中去實(shí)現(xiàn)。模板方法使得子類(lèi)可以在不改變算法結(jié)構(gòu)的情況下,重新定義算法中的某一些步驟。
模板方法在基類(lèi)中定義了一個(gè)操作的流程順序,能夠保證該步驟按序進(jìn)行,有一些步驟的具體實(shí)現(xiàn)在基類(lèi)中已經(jīng)聲明,而將一些變化的步驟的具體實(shí)現(xiàn)交給了子類(lèi)去實(shí)現(xiàn),從而就達(dá)到了延遲一些步驟到子類(lèi)中,模板方法一個(gè)最大的好處就是能夠設(shè)定一個(gè)業(yè)務(wù)流程能夠按照一定嚴(yán)格的順序執(zhí)行,控制了整個(gè)算法的執(zhí)行步驟。
這個(gè)方法將算法定義成一組步驟,其中凡是想讓子類(lèi)進(jìn)行自定義實(shí)現(xiàn)的步驟,均定義為抽象方法。抽象基類(lèi)的特點(diǎn)是,一般將模板方法設(shè)置為final,這樣防止子類(lèi)覆蓋該算法的步驟,將一些相同的操作或步驟直接在基類(lèi)中實(shí)現(xiàn),將一些變化的步驟設(shè)置為抽象由子類(lèi)去完成。

Java實(shí)現(xiàn)示例
類(lèi)圖:

20165593331891.jpg (864×606)

/** 
 * 業(yè)務(wù)流程模板,提供基本框架 
 */ 
public abstract class BaseTemplate { 
   
  public abstract void part1(); 
 
  public abstract void part2(); 
 
  public abstract void part3(); 
 
  //這里為了嚴(yán)格實(shí)驗(yàn)結(jié)果,使用final不可被重寫(xiě) 
  public final void useTemplateMethod() { 
    part1(); 
    part2(); 
    part3(); 
  } 
} 

/** 
 * 模板實(shí)現(xiàn)方式1 
 */ 
public class TemplateMethod extends BaseTemplate { 
 
  @Override 
  public void part1() { 
    System.out.println("模板方法1"); 
  } 
 
  @Override 
  public void part2() { 
    System.out.println("模板方法2"); 
  } 
 
  @Override 
  public void part3() { 
    System.out.println("模板方法3"); 
  } 
 
} 

/** 
 * 模板實(shí)現(xiàn)方式2 
 * @author stone 
 * 
 */ 
public class TemplateMethod2 extends BaseTemplate { 
 
  @Override 
  public void part1() { 
    System.out.println("模板方法11"); 
  } 
 
  @Override 
  public void part2() { 
    System.out.println("模板方法22"); 
  } 
 
  @Override 
  public void part3() { 
    System.out.println("模板方法33"); 
  } 
   
} 

public class Test { 
  public static void main(String[] args) { 
    BaseTemplate tm = new TemplateMethod(); 
    tm.useTemplateMethod(); 
     
    System.out.println(""); 
     
    BaseTemplate tm2 = new TemplateMethod2(); 
    tm2.useTemplateMethod(); 
  } 
} 


打印:

模板方法1 
模板方法2 
模板方法3 
 
模板方法11 
模板方法22 
模板方法33 

相關(guān)文章

  • 使用maven如何將項(xiàng)目中的test代碼打包進(jìn)jar中

    使用maven如何將項(xiàng)目中的test代碼打包進(jìn)jar中

    這篇文章主要介紹了使用maven如何將項(xiàng)目中的test代碼打包進(jìn)jar中,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Ajax+Servlet+jsp顯示搜索效果

    Ajax+Servlet+jsp顯示搜索效果

    這篇文章主要為大家詳細(xì)介紹了Ajax+Servlet+jsp顯示搜索效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • mybatis一級(jí)緩存和二級(jí)緩存的區(qū)別及說(shuō)明

    mybatis一級(jí)緩存和二級(jí)緩存的區(qū)別及說(shuō)明

    這篇文章主要介紹了mybatis一級(jí)緩存和二級(jí)緩存的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • Java 基礎(chǔ):string中的compareTo方法

    Java 基礎(chǔ):string中的compareTo方法

    這篇文章主要介紹了Java 基礎(chǔ):string中的compareTo方法,文章圍繞string中的compareTo方法的相關(guān)資料展開(kāi)文章詳細(xì)內(nèi)容,希望對(duì)待大家有所幫助
    2021-12-12
  • Spring通過(guò)配置文件管理Bean對(duì)象的方法

    Spring通過(guò)配置文件管理Bean對(duì)象的方法

    這篇文章主要介紹了Spring通過(guò)配置文件管理Bean對(duì)象的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-07-07
  • Spring Security CsrfFilter過(guò)濾器用法實(shí)例

    Spring Security CsrfFilter過(guò)濾器用法實(shí)例

    這篇文章主要介紹了Spring Security CsrfFilter過(guò)濾器用法實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Java集合框架迭代器Iterator實(shí)現(xiàn)原理解析

    Java集合框架迭代器Iterator實(shí)現(xiàn)原理解析

    這篇文章主要介紹了Java集合框架迭代器Iterator實(shí)現(xiàn)原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • java Hibernate 一對(duì)多自身關(guān)聯(lián)問(wèn)題

    java Hibernate 一對(duì)多自身關(guān)聯(lián)問(wèn)題

    formBean在提交表單的時(shí)候,域中數(shù)據(jù)庫(kù)在下一次中仍然保留引起的,struts formBean 默認(rèn)的scope為session,手動(dòng)設(shè)置為request,就好了
    2008-07-07
  • 關(guān)于Java反編譯字節(jié)碼文件

    關(guān)于Java反編譯字節(jié)碼文件

    將高級(jí)語(yǔ)言翻譯成匯編語(yǔ)言或機(jī)器語(yǔ)言的過(guò)程Java語(yǔ)言中的編譯一般指將Java文件轉(zhuǎn)換成class文件顧名思義反編譯就是編譯的逆向過(guò)程其實(shí)我們常用的開(kāi)發(fā)工具(例如:IDEA、Eclipse)都帶有反編譯功能,需要的朋友可以參考下
    2023-05-05
  • Java的延遲隊(duì)列之DelayQueue解讀

    Java的延遲隊(duì)列之DelayQueue解讀

    這篇文章主要介紹了Java的延遲隊(duì)列之DelayQueue解讀,DelayQueue的底層存儲(chǔ)是一個(gè)PriorityQueue,PriorityQueue是一個(gè)可排序的Queue,其中的元素必須實(shí)現(xiàn)Comparable接口的compareTo方法,需要的朋友可以參考下
    2023-12-12

最新評(píng)論

东乡| 肥东县| 太湖县| 大英县| 新丰县| 广东省| 榆树市| 曲水县| 鹤壁市| 昭苏县| 凉城县| 株洲市| 南充市| 班玛县| 平安县| 秦皇岛市| 兴义市| 米林县| 五莲县| 南川市| 临沧市| 姚安县| 屏山县| 揭西县| 讷河市| 葫芦岛市| 抚顺县| 河津市| 景谷| 方城县| 新绛县| 延津县| 大化| 河南省| 吴旗县| 昔阳县| 江山市| 保定市| 汶川县| 永仁县| 荣昌县|