Java之模板方法模式(Template Method)

來源:互聯網
上載者:User

1. 概念:定義一個演算法的骨架,而將一些實現步驟延遲到子類中。

    把不變的行為搬到超類,去除子類中重複的代碼來體現他的優勢。

2. UML圖:

3.代碼:

public abstract class Templete {    private void beforeOperation()  {      System.out.println("This acton before the operation!");    }       private void afterOperation()  {      System.out.println("This acton after the operation!");    }       //需要延遲到子類(實作類別) 中執行    protected abstract void operation();    public void topOperation()  {      beforeOperation();      operation();      afterOperation();    }  }  public class TempleteImpl extends Templete {    protected void operation()   {      System.out.println("The operation action is executed in the method of ServiceA instance! ");    }  }  public class TempletTest {    public static void main(String[] args)   {      Templete templete = new TempleteImpl();      templete.topOperation();    }  }  

  

4.應用情境:

1) 一次性實現一個演算法的不變的部分,並將可變的行為留給子類來實現。

2) 各子類中公用的行為應被提取出來並集中到一個公用父類中以避免代碼重複。首先識別現有代碼中的不同之處,並且將不同之處分離為新的操作。最後,用一個調用這些新的操作的模板方法來替換這些不同的代碼。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.