真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java如何實(shí)現(xiàn)Template-創(chuàng)新互聯(lián)

小編給大家分享一下Java如何實(shí)現(xiàn)Template,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

在成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)過程中,需要針對(duì)客戶的行業(yè)特點(diǎn)、產(chǎn)品特性、目標(biāo)受眾和市場(chǎng)情況進(jìn)行定位分析,以確定網(wǎng)站的風(fēng)格、色彩、版式、交互等方面的設(shè)計(jì)方向。成都創(chuàng)新互聯(lián)公司還需要根據(jù)客戶的需求進(jìn)行功能模塊的開發(fā)和設(shè)計(jì),包括內(nèi)容管理、前臺(tái)展示、用戶權(quán)限管理、數(shù)據(jù)統(tǒng)計(jì)和安全保護(hù)等功能。

前言:

我們?cè)陂_發(fā)中有很多固定的流程,這些流程有很多步湊是固定的,比如JDBC中獲取連接,關(guān)閉連接這些流程是固定不變的,變動(dòng)的只有設(shè)置參數(shù),解析結(jié)果集這些是根據(jù)不同的實(shí)體對(duì)象“來做調(diào)整”,針對(duì)這種擁有固定算法流程,其中有固定的步湊,存在不固定的步湊的情況下就誕生了模板方法模式。

模板方法模式(Template)定義:

模板方法模式又叫模板模式,指的是父類定義了一個(gè)多步湊的算法骨架,其中很多步湊是在父類中實(shí)現(xiàn)了的,有的步湊是根據(jù)不同的子類擁有不同的實(shí)現(xiàn),就把這些“不確定”的實(shí)現(xiàn)步湊定義為抽象方法交給子類去實(shí)現(xiàn)。模板模式的核心就是在使子類不改變算法結(jié)構(gòu)的情況下,重新定義算法的某些步湊。屬于行為型設(shè)計(jì)模式。應(yīng)用很廣發(fā),比如Mybatis中的BaseExecutor;Spring中的JdbcTemplate;Spring集成Hibernate中的HibernateTemplate,Spring集成各種Mq的Template,還有MongodbTemplate等......

模式中的角色:

抽象類(AbstractClass):實(shí)現(xiàn)了模板方法,定義了算法的骨架。

具體類 (Concrete):實(shí)現(xiàn)了抽象類中抽象放,使得父類定義的算法更完整。

代碼實(shí)現(xiàn):

1:用抽象類定義流程,比如我們每天上班有個(gè)流程: 開機(jī)-->寫代碼(不同的程序員可能寫不同的代碼-->關(guān)機(jī); 整個(gè)流程中開機(jī)和關(guān)機(jī)是相同的,只是寫代碼這個(gè)步湊不同,java程序員寫java代碼,Php程序員寫Php代碼; 我們先用一個(gè)抽象的父類定義這個(gè)流程:

public abstract class Work {

  //定義算法步湊流程
  public void workDay(){

    //1:上班開機(jī)
    openComputer();
    //2:搬磚:寫代碼
    coding();
    //3:下班關(guān)機(jī)     closeComputer();
  }

  //開機(jī)
  private final void openComputer() {
    System.out.println("到達(dá)公司,開機(jī)");
  }

  //寫代碼
  protected abstract void coding();

  //關(guān)機(jī)
  private final void closeComputer() {
    System.out.println("下班,關(guān)機(jī)");
  }

}

2:具體實(shí)現(xiàn)

Java程序員

public class JavaProgrammer extends Work {
  
  @Override
  protected void coding() {
    System.out.println("Java程序員打開Idea,寫Java代碼。。。");
  }
}

PHP程序員

public class PhpProgrammer extends Work {

  @Override
  protected void coding() {
    System.out.println("PHP程序員打開Zend Studio,寫Php代碼。。。");
  }
}

3:使用

public class TemplateMethodDemo {

  public static void main(String[] args) {
    Work javaProgrammer = new JavaProgrammer();
    javaProgrammer.workDay();
    System.out.println("================");
    Work phpProgrammer = new PhpProgrammer();
    phpProgrammer.workDay();
  }
}

運(yùn)行結(jié)果

Java如何實(shí)現(xiàn)Template

模板模式在源碼中的體現(xiàn):

1:我們每天都在使用的HttpServlet里面的service方法,service方法里面定義了調(diào)用流程,根據(jù)客戶端調(diào)用的不同方式,if else邏輯判斷調(diào)用不同的方法,比如doGet,doPost,doDelete等實(shí)現(xiàn)restful調(diào)用,具體的doGet,doPost方法實(shí)現(xiàn)我們可以在我們自己定義的Servlet中進(jìn)行重寫。

Java如何實(shí)現(xiàn)Template

2:Mybatis框架中也有一些經(jīng)典實(shí)用,比如BaseExecutor類,它是一個(gè)基礎(chǔ)的SQL執(zhí)行類,實(shí)現(xiàn)了大部分SQL的執(zhí)行邏輯,然后把幾個(gè)方法教給子類定制化完成,源碼如下:

Java如何實(shí)現(xiàn)Template

Java如何實(shí)現(xiàn)Template

其中doUpdate(),doFlushStatements(),doQuery(),doQueryCursor()等方法都是由子類來實(shí)現(xiàn)的,BaseExecutor有那些子類呢?我們來看一下他的類圖:

Java如何實(shí)現(xiàn)Template

我們可以去看看具體每個(gè)子類的不同的實(shí)現(xiàn)。

模板模式的優(yōu)缺點(diǎn):

優(yōu)點(diǎn):

1:利用模板模式可以將相同處理邏輯的代碼放到抽象父類中,提高了代碼的復(fù)用性。

2:將不同的邏輯放到不同的子類中,通過子類的擴(kuò)展增加新的行為,提高了代碼的擴(kuò)展性。

3:把不變的行為寫在父類中,去除了子類的重復(fù)代碼,提供了一個(gè)很好的代碼復(fù)用平臺(tái),符合開閉原則。

4:公司的高級(jí)工程師或者架構(gòu)師在項(xiàng)目前期可以利用模板模式定義好流程,讓其他編碼功工程師去實(shí)現(xiàn)具體。

缺點(diǎn):

1:每個(gè)抽象類都需要至少一個(gè)子類來實(shí)現(xiàn),導(dǎo)致了類數(shù)量的增加。

2:類數(shù)量增加間接增加了系統(tǒng)的復(fù)雜性。

3:因?yàn)槔^承關(guān)系的自身缺點(diǎn),如果父類添加一個(gè)新的抽象方法,素有子類都要實(shí)現(xiàn)一遍。

以上是“Java如何實(shí)現(xiàn)Template”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司行業(yè)資訊頻道!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


文章名稱:Java如何實(shí)現(xiàn)Template-創(chuàng)新互聯(lián)
文章源于:http://weahome.cn/article/dpscoi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部