模板方法算是設計模式中比較簡單的一種了,爲何簡單,看完就知道了。
程序員
下面這個是個父類,在實際的項目中,能夠是一個動態庫的代碼,也能夠是一個某些不容易改變的代碼。也就是說這個類是穩定設計模式
下面兩個類是子類,主要用於對父類的擴展,若是說上面那個類是第三方庫的話,那麼子類只須要重寫父類的函數,就能夠了,不須要本身寫邏輯ide
如今看看主函數中怎麼調用函數
能夠看到,調用父類中的Run函數時,執行的結果是不一樣的,是具體每一個子類中的實現。學習
如今看看,模板方法是否是很簡單,跟我們C++的多態是否是區別不大?spa
這裏仍是有區別,這時候再看父類設計
父類裏面存在着一個Run函數,這個函數有兩個穩定的函數,一個變化的函數。blog
假如如今父類是寫的動態庫代碼,子類是應用程序代碼。那麼我們的流程是在哪裏實現?沒錯,就是父類的Run函數,爲何要這麼實現呢?圖片
若是在子類中實現業務流程,那麼就是子類調用父類,這叫早綁定;而在父類中實現業務,經過虛函數的變化,實現父類調用子類代碼,就是晚綁定。早綁定和晚綁定的區別,後續會詳細討論。it
我是程序員的頸椎,歡迎你們一塊兒學習交流QQ羣689930130