Java設計模式 - 模板模式
?? 不斷學習才是王道
?? 繼續踏上學習之路,學之分享筆記
?? 總有一天我也能像各位大佬一樣
??原創作品,更多關注我CSDN: 一個有夢有戲的人
??準備將博客園、CSDN一起記錄分享自己的學習心得!!!
??分享學習心得,歡迎指正,大家一起學習成長!

- Java設計模式 - 模板模式
- 簡介
- 模板模式實體
- ①、定義抽象類(模板類)
- ②、定義具體類
- ③、測驗
簡介
在模板模式(Template Pattern)中,一個抽象類公開定義了執行它的方法的方式/模板,它的子類可以按需要重寫方法實作,但呼叫將以抽象類中定義的方式進行,這種型別的設計模式屬于行為型模式,
———— 菜鳥聯盟
UML圖:

模板模式實體
本次實驗采用不同種奶茶制作的例子,奶茶類作為抽象類,提供制作奶茶程序的方法,需要子類實作的方法作為抽象方法,在定義兩種不同的奶茶,最后通過測驗得出結論,
本次實驗的類圖:

①、定義抽象類(模板類)
除了公共方法,其他變化的方法都由子類實作,
package com.lyd.demo.template;
/**
* @Author: lyd
* @Description: 抽象類 - 奶茶
* @Date: 2022-09-02
*/
public abstract class MilkTea {
final public void make() { // 子類不需要重寫
pourTea();
pourMilk();
filterTea();
addMaterials();
stir();
success();
}
public void pourTea() {
System.out.println("倒入茶葉燜三分鐘");
}
public void pourMilk() {
System.out.println("倒入牛奶加熱至小泡");
}
public void filterTea() {
System.out.println("過濾茶葉");
}
public abstract void addMaterials(); // 添加東西,子類實作
public void stir() {
System.out.println("攪拌");
}
public abstract void success();
}
②、定義具體類
具體類,實作父類的抽象方法,這里只粘貼紅豆奶茶類
package com.lyd.demo.subclass;
import com.lyd.demo.template.MilkTea;
/**
* @Author: lyd
* @Description: 紅豆奶茶
* @Date: 2022-09-02
*/
public class RedBeanMilkTea extends MilkTea {
public void addMaterials() {
System.out.println("添加紅豆");
}
public void success() {
System.out.println("紅豆奶茶做好啦");
}
}
③、測驗
通過呼叫make方法就可以自動呼叫子類的特有方法實作,
package com.lyd.demo.test;
import com.lyd.demo.subclass.PearlMilkTea;
import com.lyd.demo.subclass.RedBeanMilkTea;
import com.lyd.demo.template.MilkTea;
/**
* @Author: lyd
* @Description: 測驗
* @Date: 2022-09-02
*/
public class TemplateTest {
public static void main(String[] args) {
MilkTea redBeanMilkTea = new RedBeanMilkTea();
redBeanMilkTea.make();
System.out.println("************************************************");
MilkTea pearlMilkTea = new PearlMilkTea();
pearlMilkTea.make();
}
}
運行結果

??創作不易,可能有些語言不是很通暢,如有錯誤請指正,感謝觀看!記得一鍵三連哦!??
今天內容比較簡單,很容易理解,設計模式一路過來也到了模板模式,一切還是很順利的,也加深了對java面向物件的理解,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/509170.html
標籤:設計模式
上一篇:設計模式在業務系統中的應用
下一篇:聊聊秒殺系統的設計(四)
