筆者自語:模板模式是什么鬼炸客,咋一聽名字好像很牛的樣子绒北,讓我們一塊來了解一下吧:
設計意圖:定義一個操作中的算法的骨架,而將一些步驟延遲到子類中灸芳,模板方法使得子類可以不改變一個算法的結(jié)構(gòu)及可重定義該算法的某些特定步驟涝桅。
主要解決:一些方法通用,卻在每一個子類都重寫了這一方法烙样。
何時使用:有一些通用的方法冯遂。
關鍵代碼:在抽象類實現(xiàn),其他步驟在子類中實現(xiàn)误阻。
優(yōu)點:1.封裝不變部分债蜜,擴展可變部分。2.提取公共代碼究反,便于維護寻定。3.行為由父類控制,子類實現(xiàn)精耐。
缺點:每一個不同的實現(xiàn)都需要一個子類來實現(xiàn)狼速,導致類的個數(shù)增加,使得系統(tǒng)更加龐大卦停。
使用場景:1.有多個子類共有的方法向胡,且邏輯相同。2.重要的惊完、復雜的方法僵芹,可以考慮作為模板方法。
注意事項:為防止惡意操作小槐,一般模板方法都加上final關鍵詞拇派。
最后我想說:這尼瑪什么鬼,說的冠冕堂皇凿跳,按照我的理解件豌,其實我們iOS開發(fā)平時都用爛了的方法,說白了就是一個父類控嗜,父類寫了幾個方法茧彤,然后子類中重寫了父類的方法,這就是所謂的模板模式疆栏,能不能說的在高級點曾掂。