天天看點

模闆設計方法——面條很香   所謂的模闆方法模式,就是定義一個算法的骨架,而将一些步驟延遲到子類中。模闆方法使得子類可以不改變一個算法結構就可重新定義算法的某些特定步驟。   理論總是需要實踐去證明的,接下來就讓我們以文章開頭的大碗面為例,舉例細說模闆方法模式。    食堂的大碗面分有雞排,排骨面等等,面的叫法不一樣,但是做法一樣,加的原料也差不多,蔥,香菜,湯。唯一的不同就是加排骨還是雞排。

    最近很喜歡吃面,今天一下課就又去吃面了。上次吃的排骨面,上上次吃的雞排面,兩個都好吃。其實吧,想想

這兩唯一的差別就是加雞排的就是雞排面,加排骨就是排骨面。别的東西都一樣。

    吃飽回來,繼續學習大話設計模式之模闆方法模式。

  看看模闆方法的結構圖:

模闆設計方法——面條很香   所謂的模闆方法模式,就是定義一個算法的骨架,而将一些步驟延遲到子類中。模闆方法使得子類可以不改變一個算法結構就可重新定義算法的某些特定步驟。   理論總是需要實踐去證明的,接下來就讓我們以文章開頭的大碗面為例,舉例細說模闆方法模式。    食堂的大碗面分有雞排,排骨面等等,面的叫法不一樣,但是做法一樣,加的原料也差不多,蔥,香菜,湯。唯一的不同就是加排骨還是雞排。

       對比發現,修改之後的子類代碼非常簡單。相同操作的方法都在父類中去實作,子類中之存放不相同的方法。這裡應該注意所有重複的代碼都應該上升到父類中,而不是讓每個子類都重複。

先看看整體結構圖:

模闆設計方法——面條很香   所謂的模闆方法模式,就是定義一個算法的骨架,而将一些步驟延遲到子類中。模闆方法使得子類可以不改變一個算法結構就可重新定義算法的某些特定步驟。   理論總是需要實踐去證明的,接下來就讓我們以文章開頭的大碗面為例,舉例細說模闆方法模式。    食堂的大碗面分有雞排,排骨面等等,面的叫法不一樣,但是做法一樣,加的原料也差不多,蔥,香菜,湯。唯一的不同就是加排骨還是雞排。

      最後總結一下模闆方法的特點:通過把不變的行為搬移到父類,去除子類中重複的代碼來展現它的優勢。 

       例子中的雞排面和排骨面隻因為加的肉不同而不同,是以子類中隻有這個方法,别的方法都相同,是以都寫到父類中。

       将學習和生活結合起來,學習将更高效和搞笑o(∩_∩)o~

繼續閱讀