模板方法

模板方法算是設計模式中比較簡單的一種了,爲何簡單,看完就知道了。
程序員



下面這個是個父類,在實際的項目中,能夠是一個動態庫的代碼,也能夠是一個某些不容易改變的代碼。也就是說這個類是穩定設計模式

圖片.png



下面兩個類是子類,主要用於對父類的擴展,若是說上面那個類是第三方庫的話,那麼子類只須要重寫父類的函數,就能夠了,不須要本身寫邏輯ide

圖片.png


如今看看主函數中怎麼調用函數

spacer.gif圖片.png

spacer.gif圖片.png


能夠看到,調用父類中的Run函數時,執行的結果是不一樣的,是具體每一個子類中的實現。學習




如今看看,模板方法是否是很簡單,跟我們C++的多態是否是區別不大?spa

這裏仍是有區別,這時候再看父類設計

圖片.png


父類裏面存在着一個Run函數,這個函數有兩個穩定的函數,一個變化的函數。blog

假如如今父類是寫的動態庫代碼,子類是應用程序代碼。那麼我們的流程是在哪裏實現?沒錯,就是父類的Run函數,爲何要這麼實現呢?圖片

若是在子類中實現業務流程,那麼就是子類調用父類,這叫早綁定而在父類中實現業務,經過虛函數的變化,實現父類調用子類代碼,就是晚綁定。早綁定和晚綁定的區別,後續會詳細討論。it


我是程序員的頸椎,歡迎你們一塊兒學習交流QQ羣689930130

相關文章
相關標籤/搜索