模板方法模式(Template Method):在一個方法中定義了一個算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以再不改變算法結構的情況下,重新定義算法中的某些步驟。簡而言之:模板方法定義了一個算法的步驟,并允許子類為一個或多個步驟提供實現。
##一、uml建模:

##二、代碼實現:
~~~
/**
* 示例:模板方法定義了一個算法的步驟,并允許子類為一個或多個步驟提供實現。
*
* 以吃飯為例:有幾個步驟 --> 煮飯+燒菜+吃飯中+吃完了
*/
abstract class AbstractTemplate {
public final void haveMeal() {
zhuFan();
shaoCai();
duringMeal();
finish();
}
public abstract void zhuFan();
public abstract void shaoCai();
public void duringMeal() {
System.out.println("吃飯中...");
}
public void finish() {
System.out.println("吃完了...");
}
}
class Sub1 extends AbstractTemplate {
@Override
public void zhuFan() {
System.out.println("使用電飯煲煮飯...");
}
@Override
public void shaoCai() {
System.out.println("使用爐灶燒菜...");
}
}
class Sub2 extends AbstractTemplate {
@Override
public void zhuFan() {
System.out.println("使用高壓鍋煮飯...");
}
@Override
public void shaoCai() {
System.out.println("使用電磁爐燒菜...");
}
}
/**
* 客戶端測試類
*
* @author Leo
*/
public class Test {
public static void main(String[] args) {
AbstractTemplate at1 = new Sub1();
at1.haveMeal();
System.out.println("\n");
AbstractTemplate at2 = new Sub2();
at2.haveMeal();
}
}
~~~
##三、總結
模板方法模式:一個抽象類中,有一個主方法,再定義1...n個方法,可以抽象,可以不抽象,定義子類繼承該抽象類,重寫抽象方法,通過調用抽象類,實現對子類的調用。
- 前言
- (一)策略模式建模與實現
- (二)觀察者模式建模與實現
- (三)裝飾者模式建模與實現
- (四)工廠方法模式建模與實現
- (五)抽象工廠模式建模與實現
- (六)單例模式建模與實現
- (七)命令模式建模與實現
- (八)適配器模式建模與實現
- (九)外觀模式建模與實現
- (十)模板方法模式建模與實現
- (十一)迭代器模式建模與實現
- (十二)組合模式建模與實現
- (十三)狀態模式建模與實現
- (十四)代理模式建模與實現
- (十五)建造者模式建模與實現
- (十六)原型模式建模與實現
- (十七)橋接模式建模與實現
- (十八)責任鏈模式建模與實現
- (十九)備忘錄模式建模與實現
- (二十)解釋器模式建模與實現
- (二十一)享元模式建模與實現
- (二十二)中介者模式建模與實現
- (二十三)訪問者模式建模與實現
- Java設計模式博客全目錄