模板方法模式(Template Method Pattern)

模板方法模式:算法

  (就是在抽象基類中定一個複用的方法!)spa

  在一個方法中定一個算法的骨架,而將一些步驟延遲到子類中。code

  模板方法使得子類能夠再不改變算法結構的狀況下,從新定義算法中的某些步驟。blog

 

實例:it

  泡茶的步驟分別:io

    一、把水煮開模板

    二、用開水沖泡茶葉class

    三、把茶倒進杯子裏原理

    四、加檸檬方法

  泡咖啡的步驟爲:

    一、把水煮開

    二、用開水沖泡咖啡

    三、把咖啡倒進杯子裏

    四、加糖

  泡茶和泡咖啡的流程基本類似,因此能夠放在一塊兒,用下面的這個過程實現。

    一、把水煮開

    二、用開水沖泡

    三、倒進杯子裏

    四、加調料

  把這麼這一個步驟封裝成一個方法,這個方法就是模板方法。

void blunkDrinks()
{
     // 依次是每一個步驟  
     boilWater();     
     brew();
     pourIncup();
     addConditions();
}
void
boilWater()
{
  // 具體實現
}
void addCondition()
{
  // 具體實現
}

abstract void brew();  // 抽象方法,在對應的茶或咖啡類中具體實現
abstract void addConditions();  // 抽象方法,在對應的茶或咖啡類中具體實現
 

 

原理:

  一、抽象出一個抽象類,在這個類裏面實現一個模板方法

  二、模板方法裏面包含一系列步驟(一系列方法),共用方法在抽象類中實現,特殊方法在子類中實現

 

應用實例:

  JAVA Swing

相關文章
相關標籤/搜索