您好,登錄后才能下訂單哦!
什么是模板方法模式
所謂模板方法模式,就是定義一個操作中的算法的框架,而將一些步驟延遲到子類中,使得子類可以不改變一個算法的結構即可重新定義該算法的某些特定步驟。
模板方法模式的實現方式
模板方法模式實際上時封裝了一個固定流(tao)程(lu),第一步做什么,第二步做什么都已經在抽象類中定義好,子類只需要在框架不被修改的情況下實現某些步驟的算法替換。
當代小說網站的男頻爽文,都是有一定套路的,開篇都是一個loser,然后意外獲得秘笈,接下來修仙,最后成為宇宙霸主。我相信epubit的讀者是不會讀這些給識字不多的人讀的書的,因此我要拿《紅樓夢》中的“掰謊記”舉例,賈母對某一類文學作品的套路的總結:
public abstract class Template { |
被賈母掰謊的作品《鳳求凰》:
public class Courtship extends Template{ |
類似的作品《西廂記》:
public class WesternChamber extends Template{ |
賈母過了一個開心的元宵節,讀者們也學會了模板方法模式。
Android源碼中的模板方法模式
(1)AsyncTask
用戶可以根據需求重寫onPreExecute、doInBackground、onPostExecute這個邏輯流程,這是典型的模板方法模式。
(2)生命周期
無論Activity、Service還是Fragment,一切以“on”打頭的被動方法都是模板方法模式的一部分。
Android開發中如何利用模板方法模式
模板方法模式的優點很明顯:
(1)封裝不變部分,擴展可變部分
(2)提取公共部分代碼,便于維護。
因此適用于以下場合:
(1)多個子類有公有的方法,并且邏輯基本相同時。
(2)重復、復雜的算法,可以把核心算法設計為模板方法,周邊的相關細節功能則由各個子類實現。
(3)重構時,把相同的代碼抽取到父類中,然后通過鉤子函數約束其行為。
需要注意的幾個問題
模板方法模式會帶來代碼閱讀的難度。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。