筆者之前對策略模式和模板方法的理解有些模糊遵绰,正好有空查查資料搞清楚兩者之間的區(qū)別增淹。一句話來說就是:
- 策略模式:把具體實現(xiàn)都留給子類或者實現(xiàn)類。重子類
- 模板方法:父類定好算法框架成玫,其他的部分細(xì)節(jié)交由子類實現(xiàn)拳喻。重父類
《代碼大全》對2個模式的解釋如下:
Strategy: Defines a set of algorithms or behaviors that are dynamically interchangeable with each other.
Template Method: Defines the structure of an algorithm but leaves some of the detailed implementation to subclasses
以上表述可以用下圖匯總:
ref: