国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

模板方法模式(Template)

Sourcelink / 3245人閱讀

摘要:模板方法模式一模板方法模式定義定義一個操作中算法的框架,而將一些步驟延遲到子類中,使得子類可以不改變算法的結(jié)構(gòu)即可重定義該算法中的某些特定步驟角色抽象類實現(xiàn)了模板方法具體類實現(xiàn)抽象類中的抽象方法抽象類中的方法抽象方法父類只聲明,不實現(xiàn)模板方

模板方法模式

一. 模板方法模式 1.1 定義

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

1.2 角色

抽象類:實現(xiàn)了模板方法.

具體類:實現(xiàn)抽象類中的抽象方法.

1.3 抽象類中的方法

抽象方法:父類只聲明,不實現(xiàn).

模板方法:父類聲明并實現(xiàn).

鉤子方法:父類聲明并實現(xiàn),由子類擴展.

二. 具體實現(xiàn) 2.1 創(chuàng)建抽象模板
    public abstract class AbstractTemplate {
        abstract void print1();
        abstract void print2();
        public final void execute(){
            this.print1();
            this.print2();
        }
    }
2.2 創(chuàng)建具體對象
    public class TemplateA extends AbstractTemplate {
        @Override
        void print1() {
            System.out.println("TemplateA print1 ...");
        }
        @Override
        void print2() {
            System.out.println("TemplateA print2 ...");
        }
    }
    public class TemplateB extends AbstractTemplate {
        @Override
        void print1() {
            System.out.println("TemplateB print1 ...");
        }
        @Override
        void print2() {
            System.out.println("TemplateB print2 ...");
        }
    }
2.3 調(diào)用
    public static void main(String[] args) {
        AbstractTemplate template = new TemplateA();
        template.execute();
        template = new TemplateB();
        template.execute();
    }
2.4 輸出
    TemplateA print1 ...
    TemplateA print2 ...
    TemplateB print1 ...
    TemplateB print2 ...
三. 優(yōu)缺點 3.1 優(yōu)點

封裝不變部分,擴展可變部分.

行為由父類控制,子類實現(xiàn).

3.2 缺點

每個不同的實現(xiàn)方式都要新建一個子類,導(dǎo)致類膨脹.

四. 源碼
    https://github.com/Seasons20/DisignPattern.git

END

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/69743.html

相關(guān)文章

  • 3.3、URI 模板模式Template Pattern)

    摘要:模板可以很方便地用于訪問一個方法中的的被選擇的部分。為模板擬定的文檔定義了一個是怎樣被參數(shù)化的。為了處理注解,需要按名找到匹配模板的變量。在定義模板變量時,你需要更高的精確度。語法的第一部分定義了變量名,第二部分是一個正則表達式。 ????這一部分是對 Spring 5 文檔的直接翻譯,連接是這個。這一部分的示例不再貼代碼,請到這個項目的 mvc 分支下查看,本篇示例的控制器名稱是 U...

    caiyongji 評論0 收藏0
  • Template Method: 從李淵開國看模板方法模式

    摘要:從李淵開國看模板方法模式假如史書記載沒有水分的話,那么相對于其他開國皇帝,李淵的難度最低,畢竟什么事情都交給他兒子干就完事了。而李世民則接受李淵的調(diào)遣,負(fù)責(zé)實現(xiàn)各個細(xì)節(jié)。模板方法模式是抽象與實踐分離的又一個經(jīng)典實踐。 Template Method: 從李淵開國看模板方法模式 假如史書記載沒有水分的話,那么相對于其他開國皇帝,李淵的難度最低,畢竟什么事情都交給他兒子干就完事了。 從晉陽...

    April 評論0 收藏0
  • 基于TmodJS的前端模板工程化解決方案

    摘要:原作者唐斌騰訊什么原名是一個簡單易用的前端模板預(yù)編譯工具。本文作者為來自騰訊團隊的唐斌,他在本文中為我們分析了傳統(tǒng)前端模板內(nèi)嵌的弊端,如開發(fā)調(diào)試效率低下自動化構(gòu)建復(fù)雜度比較高等特點,并針對目前現(xiàn)狀給出了較好的解決方案。 原作者: 唐斌(騰訊)| TmodJS什么 TmodJS(原名atc)是一個簡單易用的前端模板預(yù)編譯工具。它通過預(yù)編譯技術(shù)讓前端模板突破瀏覽器限制,實現(xiàn)后端模板一樣的同...

    zhaochunqi 評論0 收藏0
  • 動手搭建后端框架-Velocity模板引擎的應(yīng)用

    摘要:目錄建造者模式應(yīng)用。其實不用也可以,因為不是很復(fù)雜,只是為了復(fù)習(xí)一下所學(xué)過的設(shè)計模式知識目錄工廠模式應(yīng)用。 為了提高開發(fā)效率,通常會想辦法把一些模式固定的重復(fù)性的勞動抽取出來,以后再使用的時候,拿來主義就可以了。這樣既可以提高開發(fā)效率,又降低了出錯的風(fēng)險。 這一思想在我們的日常工作中可以說隨處可見,我們完成一項復(fù)雜的工程,并不需要面面俱到什么都自己寫,我們完全可以利用第三方的jar包讓...

    villainhr 評論0 收藏0
  • web.py源碼分析: 模板(3)

    摘要:前兩篇文章主要說明了的模板系統(tǒng)將模板文件處理后得到的結(jié)果函數(shù)。生成函數(shù)的代碼這個是模板生成過程中最長最復(fù)雜的一段,會應(yīng)用到的分析功能以及動態(tài)編譯功能。參數(shù)都是一個,表示還未解析的模板內(nèi)容。 前兩篇文章主要說明了web.py的模板系統(tǒng)將模板文件處理后得到的結(jié)果:__template__()函數(shù)。本文主要講述模板文件是如何變成__template__()函數(shù)的。 Render和frende...

    OnlyMyRailgun 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<