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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

模板方法模式(TemplateMethod) 简介

發(fā)布時間:2025/3/20 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 模板方法模式(TemplateMethod) 简介 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

模板方法模式是一個相當(dāng)簡單的模式.


可能1個完全不懂設(shè)計模式的程序猿在不知不覺間也多次使用了它.


我們先看看定義.


一.模板模式(TemplateMethod) 的定義.


所謂模板方法模式, 就是定義1個操作中的算法的骨架, 而將一些步驟延遲到子類中. 模板方法使得子類可以不改變1個算法的結(jié)構(gòu)即可重定義該算法的某些特定步驟.


看了這么多設(shè)計模式的定義, 這次終于是寫的比較通俗易懂了.


簡單來講,

模板方法模式把1個算法分成若干個步驟,??? 但是把這些步驟方法設(shè)為抽象方法,? 讓它們在子類中重寫.


這就有1個前提, 這個算法必須能嚴(yán)格分割成若干個步驟哦.



二. 洗衣機洗衣服的例子.

我們還是舉個例子來講.


洗衣機類 WashingMachine:

洗衣機最重要的方法就是洗衣服了(washing).


這個過程可以分成三個步驟

1. 進水 (inflow)
2. 清洗 (cleanning)

3. 脫水 (drying)


各種不同的洗衣機可能有不同的進水方法,? 清洗方法 以及 脫水方法.

但是基本上都是可以分成上述三個步驟的.


所以我們可以把代碼寫成這樣.


public abstract class WashingMachine {public abstract void inflow();public abstract void cleaning();public abstract void drying();public void washing(){this.inflow();this.cleaning();this.drying();} }
上面的代碼把三個子步驟寫成抽象方法,

而最終的washing()是非抽象方法.



兩個洗衣機子類: Siemens 和 Panasonic

兩個洗衣機的子類重寫了抽象類的三個抽象方法:

但是不重寫綜合算法.

public class Siemens extends WashingMachine {@Overridepublic void inflow() {// TODO Auto-generated method stubSystem.out.println("SIEMENS inflow.");}@Overridepublic void cleaning() {// TODO Auto-generated method stubSystem.out.println("SIEMENS cleaning.");}@Overridepublic void drying() {// TODO Auto-generated method stubSystem.out.println("SIEMENS cleaning.");}}

public class Panasonic extends WashingMachine {@Overridepublic void inflow() {// TODO Auto-generated method stubSystem.out.println("Panasonic inflow.");}@Overridepublic void cleaning() {// TODO Auto-generated method stubSystem.out.println("Panasonic cleaning.");}@Overridepublic void drying() {// TODO Auto-generated method stubSystem.out.println("Panasonic cleaning.");}}


客戶端代碼:

WashingMachine wm = new Siemens();wm.washing();wm = new Panasonic();wm.washing();

輸出:

SIEMENS inflow. SIEMENS cleaning. SIEMENS cleaning. Panasonic inflow. Panasonic cleaning. Panasonic cleaning.

可以看出, 上面連個子類, 雖然它們的步驟是完全不同的, 但是它們洗衣服方法的骨架是一樣的.

UML:




三,小結(jié)

這個模式好易明,?? 無非就是把1個復(fù)雜算法拆解, 然后讓不同的子類自己去實現(xiàn)各個步驟.

它只適用于能分解步驟的算法.


子類一般只重寫步驟方法, 不重寫綜合骨架,

一旦子類重寫了骨架, 那么它就不是模板方法(TemplateMethod)模式了.






































總結(jié)

以上是生活随笔為你收集整理的模板方法模式(TemplateMethod) 简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久色在线 | 久久黄色网络 | 黄色一级欧美 | 亚洲综合视频在线播放 | 色婷婷综合久久久久中文 | 日韩视频免费观看高清完整版 | 青青草原伊人 | 欧美大片免费播放器 | 国产精品系列在线播放 | 日本中文字幕网站 | 亚洲国产网站 | 成人一级免费视频 | 中国成人av | 成人久色 | 合欢视频在线观看 | 啪啪.com | 国产精品乱子伦 | 青青欧美 | 欧美视频中文字幕 | a√天堂资源 | 久久综合中文 | 午夜视频污 | 国产91在线播放九色 | 国产人妻久久精品一区二区三区 | 欧美热热| 亚洲精品中文字幕在线观看 | 夜夜高潮夜夜爽 | 黄色录像a| 天天色天天干天天 | 欧美色亚洲| 亚洲av永久无码国产精品久久 | 亚洲国产果冻传媒av在线观看 | 日本一级淫片色费放 | 天堂在线资源库 | 人妻少妇精品一区二区 | 国产天堂视频 | 日韩免费黄色 | 日本一区二区在线观看视频 | 日狠狠 | 污污免费观看 | 免费在线日本 | 在线播放色| 久久综合免费视频 | 国产精品久久久久久久裸模 | 欧美日韩99| 亚洲精品无码不卡在线播he | 孕期1ⅴ1高h | 九九热精 | 骚婷婷| 午夜在线影院 | 久久久久免费视频 | 亚洲美女性生活视频 | 在线视频久久 | 亚洲一在线 | 欧美无砖专区免费 | 日本视频h| 野战少妇38p | 日韩中文字幕一区二区三区四区 | 日韩电影在线观看一区 | 末发成年娇小性xxxxx | 免费网站在线高清观看 | 日本精品视频在线 | 在线观看xxxx | 成人黄色小说在线观看 | 肉嫁高柳家在线看 | 可以在线看的av | 亚洲精品播放 | 久久久全国免费视频 | 国模在线 | 中文一二三区 | 精品国产一区二区三区四区阿崩 | 久久久久久网址 | 黄色片在线视频 | 日本老年老熟无码 | 一卡二卡三卡 | 天天爽天天操 | 欧美精品二区三区四区免费看视频 | 久久久久黄色 | 亚洲天堂手机版 | 国产精品视频亚洲 | 91观看视频 | 理论片琪琪午夜电影 | 黄色性视频网站 | 毛片网站在线看 | jizz免费| 强伦人妻一区二区三区视频18 | 91不卡在线 | 欧美极品一区 | 伊是香蕉大人久久 | 国产免费一区二区三区在线播放 | 欧美黑人性xxx猛交 少妇无套内谢久久久久 | 久久久线视频 10 | 91久久久久国产一区二区 | 天天操天天摸天天干 | 快播色图| 日本xxxxxⅹxxxx69 | 国产精品亚洲二区在线观看 | 情欲超| 少妇荡乳情欲办公室456视频 |