java設計模式(三)模板模式

來源:互聯網
上載者:User

標籤:system   子類   blog   span   辦理   利用   簡單   需求   color   

  抽象類別中公開定義了執行它的方法的方式,子類可以按需求重寫方法實現,但調用將以抽象類別中定義的方式進行,典型應用如銀行辦理商務程序、沖泡飲料流程。下面給出簡單例子,用沸水沖泡飲料,分為四步:將水煮沸、泡製飲料、將飲料倒入杯中、加入調味料。

1、模板抽象類別

  要點:1)抽象類別  2)final修飾的模板方法

public abstract class RefreshTemplate {    public final void refresh() {        //將水煮沸        biolWater();        //炮製飲料        brew();        //將飲料倒入杯中        pourInCup();        //加入調味料        addCondiments();    }    private void biolWater() {        System.out.println("將水煮沸");    }    protected abstract void brew();    private void pourInCup() {        System.out.println("將飲料倒入杯中");    }    protected abstract void addCondiments();}

2、咖啡類,繼承模板類,重寫沖泡、加調味料方法

public class Coffee extends RefreshTemplate {    protected void brew() {        System.out.println("用沸水沖泡咖啡");    }    protected void addCondiments() {        System.out.println("向咖啡中加入牛奶和糖");    }}

3、茶類,繼承模板類,重寫沖泡、加調味料方法

public class Tea extends RefreshTemplate {    protected void brew() {        System.out.println("用開水浸泡5分鐘");    }    protected void addCondiments() {        System.out.println("加入檸檬");    }}

4、測試

public class Model {    public static void main(String[] args) {        //RefreshTemplate refresh = new Coffee();        RefreshTemplate refresh = new Tea();        refresh.refresh();    }}

利用Java的動態綁定(向上轉型),調用父類的final模板方法,保證執行按抽象類別定義的方式進行。

java設計模式(三)模板模式

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.