日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java设计模式之行为型:模板方法模式

發布時間:2024/9/30 java 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java设计模式之行为型:模板方法模式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、什么是模板方法模式:

????????模板方法是基于繼承實現的,在抽象父類中聲明一個模板方法,并在模板方法中定義算法的執行步驟(即算法骨架)。在模板方法模式中,可以將子類共性的部分放在父類中實現,而特性的部分延遲到子類中實現,只需將特性部分在父類中聲明成抽象方法即可,使得子類可以在不改變算法結構的情況下,重新定義算法中的某些步驟,不同的子類可以以不同的方式來實現這些邏輯。

? ? ? ? 模板方法模式的優點在于符合“開閉原則”,也能夠實現代碼復用,將不變的行為轉移到父類,去除子類中的重復代碼。但是缺點是不同的實現都需要定義一個子類,導致類的個數的增加使得系統更加龐大,設計更加抽象。

????????模板方法是一個方法,那么他與普通方法有什么不同呢?模板方法是定義在抽象類中,把基本操作方法組合在一起形成一個總算法或者一組步驟的方法。而普通的方法是實現各個步驟的方法,我們可以認為普通方法是模板方法的一個組成部分。

UML結構圖:

  • 抽象類(AbstractClass):實現了模板方法,定義了算法的骨架。
  • 具體類(ConcreteClass):實現抽象類中的抽象方法,已完成完整的算法。

二、模式實現:

舉個例子,以準備去學校所要做的工作(prepareGotoSchool)為例,假設需要分三步:穿衣服(dressUp),吃早飯(eatBreakfast),帶上東西(takeThings)。學生和老師要做得具體事情肯定有所區別。

抽象類AbstractClass:

//抽象類定義整個流程骨架 public abstract class AbstractPerson{//模板方法,使用final修改,防止子類改變算法的實現步驟public final void prepareGotoSchool(){dressUp();eatBreakfast();takeThings();}//以下是不同子類根據自身特性完成的具體步驟protected abstract void dressUp();protected abstract void eatBreakfast();protected abstract void takeThings(); }

具體類ConcreteClass:

public class Student extends AbstractPerson{@Overrideprotected void dressUp() {System.out.println(“穿校服");}@Overrideprotected void eatBreakfast() {System.out.println(“吃媽媽做好的早飯");}@Overrideprotected void takeThings() {System.out.println(“背書包,帶上家庭作業和紅領巾");} } public class Teacher extends AbstractPerson{@Overrideprotected void dressUp() {System.out.println(“穿工作服");}@Overrideprotected void eatBreakfast() {System.out.println(“做早飯,照顧孩子吃早飯");}@Overrideprotected void takeThings() {System.out.println(“帶上昨晚準備的考卷");} } public class Client {public static void main(String[] args) {Student student = new Student()student.prepareGotoSchool();Teacher teacher = new Teacher()teacher.prepareGotoSchool();} }


設計模式系列文章:

Java設計模式之創建型:工廠模式詳解(簡單工廠+工廠方法+抽象工廠)

Java設計模式之創建型:建造者模式

Java設計模式之創建型:單例模式

Java設計模式之創建型:原型模式

Java設計模式之結構型:適配器模式

Java設計模式之結構型:裝飾器模式

Java設計模式之結構型:代理模式

Java設計模式之結構型:橋接模式

Java設計模式之結構型:外觀模式

Java設計模式之結構型:組合模式

Java設計模式之結構型:享元模式

Java設計模式之行為型:策略模式

Java設計模式之行為型:模板方法模式

Java設計模式之行為型:責任鏈模式

Java設計模式之行為型:觀察者模式

Java設計模式之行為型:訪問者模式

Java設計模式之行為型:中介者模式

Java設計模式之行為型:命令模式

Java設計模式之行為型:狀態模式

Java設計模式之行為型:備忘錄模式

Java設計模式之行為型:迭代器模式

Java設計模式之行為型:解釋器模式


參考博客鏈接:

設計模式讀書筆記-----模板方法模式_chenssy 的技術博客-CSDN博客

Java設計模式之模板方法模式(Template Method)_一個本科小生的奮斗史-CSDN博客_java 模板方法

總結

以上是生活随笔為你收集整理的Java设计模式之行为型:模板方法模式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。