Java 模板方法模式

2018-01-17 18:49 更新

Java設(shè)計模式 - 模板方法模式


在模板模式中,父抽象類公開幾個抽象方法供子類實現(xiàn)。在父抽象類中有另一個方法或幾個方法使用抽象方法來實現(xiàn)業(yè)務(wù)邏輯。

抽象方法通常用于父類所需的每個步驟。

例如,為了使用新的軟件,我們需要下載,安裝,配置和運行。如果我們要使用模板模式來編碼邏輯,我們將創(chuàng)建一個父類如下。

abstract class UseSoftware{
   abstract void download();
   abstract void install();
   abstract void configuration();
   abstract void run();
   
   public void useNewSoftware(){
     download();
     install();
     configuration();
     run();   
   }
}

對于使用不同的軟件,我們只需要從上面的抽象類繼承并提供詳細(xì)的實現(xiàn)。

模板模式是一種行為模式。

例子

abstract class Software {
   abstract void initialize();
   abstract void start();
   abstract void end();
   //template method
   public final void play(){
      //initialize
      initialize();
      //start
      start();
      //end
      end();
   }
}
class Browser extends Software {
   @Override
   void end() {
      System.out.println("Browser Finished!");
   }

   @Override
   void initialize() {
      System.out.println("Browser Initialized!.");
   }

   @Override
   void start() {
      System.out.println("Browser Started.");
   }
}
class Editor extends Software {

   @Override
   void end() {
      System.out.println("Editor Finished!");
   }

   @Override
   void initialize() {
      System.out.println("Editor Initialized!");
   }

   @Override
   void start() {
      System.out.println("Editor Started!");
   }
}
public class Main {
   public static void main(String[] args) {
      Software s1 = new Browser();
      s1.play();
      s1 = new Editor();
      s1.play();    
   }
}

上面的代碼生成以下結(jié)果。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號