1. 程式人生 > >模板方法(TemplateMethod)

模板方法(TemplateMethod)

eth ava out 行為 pla emp line tty span

抽象類體現的就是一種模板模式的設計,抽象類作為多個子類的通用模板,子類在抽象類的基礎上進行擴展、改造,但子類總體上會保留抽象類的行為方式。
解決的問題1.當功能內部一部分實現是確定的,一部分實現是不確定的,這時可以把不確定的部分暴露出去,讓子類去實現。2.編寫一個抽象父類,父類提供了多個子類的通用方法,並把一個或多個方法留給其子類去實現,就是一種模板模式。
如下為“計算一段代碼所花時間”的模板:
  1. abstract class Template {
  2. abstract void code();
  3. public void countTime() {
  4. long start = System.currentTimeMillis
    ();
  5. code();
  6. long end = System.currentTimeMillis();
  7. System.out.println("cost time(s):" + (end - start));
  8. }
  9. }

模板方法(TemplateMethod)