中文字幕第五页-中文字幕第页-中文字幕韩国-中文字幕最新-国产尤物二区三区在线观看-国产尤物福利视频一区二区

怎么使用java模板方法模式

本篇內(nèi)容介紹了“怎么使用java模板方法模式”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

發(fā)展壯大離不開廣大客戶長期以來的信賴與支持,我們將始終秉承“誠信為本、服務(wù)至上”的服務(wù)理念,堅持“二合一”的優(yōu)良服務(wù)模式,真誠服務(wù)每家企業(yè),認(rèn)真做好每個細(xì)節(jié),不斷完善自我,成就企業(yè),實現(xiàn)共贏。行業(yè)涉及門簾等,在網(wǎng)站建設(shè)成都全網(wǎng)營銷推廣、WAP手機(jī)網(wǎng)站、VI設(shè)計、軟件開發(fā)等項目上具有豐富的設(shè)計經(jīng)驗。

定義

模板方法模式(Template Method Pattern)- 定義一個操作中的算法的框架,而將一些步驟延遲到子類中。使得子類可以不改變一個算法的結(jié)構(gòu)即可重定義該算法的某些特定步驟

簡單來說,就是把可變的部分(方法)放在子類中實現(xiàn),把不可變的部分放在父類中實現(xiàn)

舉個例子,假如你賺錢了買了個房子,交房之后是個毛坯需要裝修,裝修的流程是水電、泥工、木工、再買家具電器等,這時關(guān)于裝修哪種風(fēng)格有了不同意見,你自己喜歡簡約時尚的風(fēng)格,而你爸媽喜歡中式風(fēng)格,可不管是什么風(fēng)格,整個裝修的流程還是不變的,于是可以找裝修公司制定兩種風(fēng)格的方案,這其中變化的是兩種風(fēng)格各個流程的具體材料、做工不同,不變的是裝修的流程

模板方法結(jié)構(gòu)

通用類圖

怎么使用java模板方法模式

使用模板方法模式很簡單,使用Java的繼承機(jī)制即可,這里有兩種角色

  • 抽象模板(AbstractClass):提供模板方法,讓子類實現(xiàn)基本方法

    • 基本方法:

      基本方法也叫做基本操作,是由子類實現(xiàn)的方法,并且在模板方法被調(diào)用

    • 模板方法:

      可以有一個或幾個,一般是一個具體方法,也就是一個框架,實現(xiàn)對基本方法的調(diào)度,完成固定的邏輯

  • 具體模板(ConcreteClass):實現(xiàn)父類所定義的一個或多個抽象方法,也就是父類定義的基本方法在子類中得以實現(xiàn)

一般模板方法可以用final修飾,這樣子類不能重寫,避免被修改

優(yōu)點以應(yīng)用場景

優(yōu)點

  • 封裝不變部分,擴(kuò)展可變部分。把認(rèn)為是不變部分的算法封裝到父類實現(xiàn),而可變部分的則可以通過繼承來繼續(xù)擴(kuò)展

  • 提取公共部分代碼,便于維護(hù)

  • 行為由父類控制,子類實現(xiàn)。子類可以通過擴(kuò)展的方式增加相應(yīng)的功能,符合開閉原則

應(yīng)用場景

  • 多個子類有公有的方法,并且邏輯基本相同時

  • 重要、復(fù)雜的算法,可以把核心算法設(shè)計為模板方法,周邊的相關(guān)細(xì)節(jié)功能則由各個子類實現(xiàn)

  • 重構(gòu)時,模板方法模式是一個經(jīng)常使用的模式,把相同的代碼抽取到父類中,然后通過鉤子函數(shù)約束其行為

實例

統(tǒng)計操作時間

抽象模板,用于給操作統(tǒng)計時間,其中getTime()為模板方法,用于統(tǒng)計操作時間,該行為交給父類控制,code()鉤子方法延遲到子類中實現(xiàn)

public abstract class GetTimeTemplate {

    /**
     * 基本方法,由子類實現(xiàn) (鉤子方法)
     */
    public abstract void code();

    /**
     * 模板方法 固定流程方法
     */
    public long getTime() {
        // 獲取起始時間
        long t1 = System.currentTimeMillis();

        // 調(diào)用基本方法
        code();

        // 獲取結(jié)束時間
        long t2 = System.currentTimeMillis();
        return t2 - t1;
    }
}

具體模板實現(xiàn) - 統(tǒng)計復(fù)制文件操作時間

public class CopyFileDemo extends GetTimeTemplate {
    @Override
    public void code() {
        //復(fù)制文件
        try {
            BufferedInputStream inputStream = new BufferedInputStream(new FileInputStream("1.jpg"));

            BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream("2.jpg"));

            byte[] bs = new byte[256];
            int len = 0;

            while ((len = inputStream.read(bs)) != -1) {
                outputStream.write(bs, 0, len);
                outputStream.flush();
            }
            //釋放資源
            inputStream.close();
            outputStream.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

具體模板實現(xiàn) - 統(tǒng)計循環(huán)操作時間

public class ForDemo extends GetTimeTemplate {
    @Override
    public void code() {
        //輸出for循環(huán)
        for (int i = 0; i < 10000; i++) {
            System.out.println(i);
        }
    }
}

“怎么使用java模板方法模式”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

當(dāng)前題目:怎么使用java模板方法模式
標(biāo)題來源:http://m.2m8n56k.cn/article26/pgcgcg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、搜索引擎優(yōu)化服務(wù)器托管網(wǎng)站制作用戶體驗、網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:[email protected]。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
主站蜘蛛池模板: 成人性欧美丨区二区三区 | 手机亚洲第1页 | 国产精品久久久久久久久久久搜索 | 一级毛片免费播放 | 久久久久国产免费 | 一级a毛片免费观看久久精品 | 色偷偷亚洲第一成人综合网址 | 成人看的一级毛片 | 老外黑人欧美一级毛片 | 亚洲成av人影片在线观看 | 经典国产一级毛片 | 性欧美精品孕妇 | 国产精品成人aaaaa网站 | 精品久久久久久久九九九精品 | 中国老太卖淫播放毛片 | 美国一级做a一级视频 | 荡女妇边被c边呻吟久久 | 在线日韩中文字幕 | 91亚洲精品成人一区 | 99爱视频在线 | 97国产精品 | 国产欧美成人不卡视频 | 久在草在线| 99免费视频观看 | 另类毛片 | 久久99亚洲精品久久频 | 女人张开腿让男人捅爽 | 久草在线观看资源 | 久久久久亚洲视频 | 免费真实播放国产乱子伦 | 手机看片成人 | 欧美一级毛片黄 | 毛片免费在线 | 国产欧美久久久另类精品 | 亚洲视频一区在线观看 | 国产一级片毛片 | 亚洲99在线的 | 欧美成人全部免费观看1314色 | 美女被免费网站在线软件 | 国产成人十八黄网片 | 亚洲欧美人妖另类激情综合区 |