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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

模板方法模式讲解

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

模板方法的定義與類型,首先呢他定義了一個算法的骨架,并允許子類為一個或多個步驟提供實現(xiàn),打個比方,把大象放進冰箱,分幾步,首先呢打開冰箱門,然后把大象放進去,然后關上冰箱門,那這三個步驟就可以用模板方法設計模式,還比如我們辦一些入職流程,都是要按一定的流程,并且封裝好的算法,算法就是一個處理過程,我們簡單理解成一個函數(shù),也是OK的,也就是說呢模板方法,對應了算法的骨架,我們知道算法所需要的關鍵步驟,那么看一下定義補充,那模板方法可以使子類在不改變算法結構的情況下,重新定義算法的某些步驟,他的類型是行為型,那模板方法這個設計模式,非常簡單,一會我們coding的時候,邊coding邊體會,相信這個設計模式很容易掌握的

我們看一下模板方法的適用場景,一次性實現(xiàn)算法的不變的部分,并將可變的行為留給子類來實現(xiàn),怎么理解呢,例如說我有一套步驟,例如說還是剛剛提的那個例子,往冰箱里放東西,打開冰箱門,這是不變的,放東西是可變的,放什么東西,那A這個子類可以放大象,B這個子類也可以放老鼠,然后關上冰箱門,關上冰箱門也是一個算法,第二個呢就是各子類中公共的行為,被提取出來并集中到一個公共父類中,例如我們剛剛說的,開冰箱門和關冰箱門,從而避免代碼重復,那這一塊還是比較容易理解的,那綜上所述模板方法模式的目的呢,就是讓子類擴展,或者具體實現(xiàn)模板方法中的某些方法的步驟,也就是說對于模板來說,是一套固定的算法,但是我通過子類可以擴展,固定算法中的某些算法的步驟,那我們看一下

模板方法都有哪些優(yōu)點呢,首先提高復用性,怎么理解呢,將相同部分的代碼呢,放在抽象的父類中,第二呢提高了擴展性,將不同的代碼,放入不同的子類中,通過對子類的擴展呢,添加新的行為,還有呢符合開閉原則,這個呢很好理解,通過一個父類,調用其子類的操作,然后通過對子類的擴展,來增加新的行為,也就是說模板方法模式呢把不變的行為寫在父類上,去除子類的重復代碼,來體現(xiàn)它的優(yōu)勢,更簡單的理解,模板方法提供了一個很好的復用平臺

模板方法有哪些缺點呢,首先類數(shù)目的增加,很簡單,因為我們引入了抽象類,對于每一個不同的實現(xiàn)呢,都需要一個子類來實現(xiàn),這樣呢就導致了類的增加,間接的增加了系統(tǒng)實現(xiàn)的復雜度,另外呢還有一點,模板方法主要是通過繼承來實現(xiàn)的,那這個也是繼承關系自身的缺點,如果父類添加新的抽象方法,那所有的子類都要改一遍,這個呢也很好理解,如果子類不去修改,實現(xiàn)這個新的抽象方法的話,程序也是編譯不過去的 我們接著來看一下模板方法的一個擴展,這里面主要講一下鉤子方法,那鉤子方法提供了缺省的行為,子類可以在必要時進行擴展,那鉤子方法現(xiàn)在不理解沒有關系,以后我們寫代碼的時候,你們肯定會理解,這個呢非常容易,簡單理解說這個鉤子方法,是這個模板對子類更進一步的開放和構造,我們再看一下模板方法的相關設計模式

首先模板方法和工廠方法這兩個設計模式,那工廠方法是模板方法的一種特殊實現(xiàn),然后再看一下模板方法模式,和策略模式,那策略模式會在后面來講,這里先對他兩進行一個對比,那策略模式和模板方法模式呢,這里面都有封裝算法,那他們之間最主要的區(qū)別是什么呢,首先策略模式,他的目的是使不同的算法,可以相互替換,并且不影響應用層,客戶端的使用,而模板方法模式呢,是針對定義一個方法的流程,而將一些不太一樣的實現(xiàn)步驟呢,交給子類去實現(xiàn),那模板方法模式是不改變算法的流程的,而策略模式可以改變算法的流程的,并且他們之間是可以相互替換的,那策略模式我們后面也會講,尤其我們在代碼里面有大量的if else的時候,就可以考慮是否可以使用策略模式,我們可以認為一個if或者一個else,或者一個else if里邊,這些都是不同的策略

?

總結

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

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