模板方法模式與策略模式的區別

模板方法模式:在一個方法中定義一個算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類能夠在不改變算法結構的狀況下,從新定義算法中的某些步驟。 算法

策略模式:定義一個算法家族,並讓這些算法能夠互換。正由於每個算法都被封裝起來了,因此客戶能夠輕易地使用不一樣的算法。 對象

區別: 模板

模板方法模式意圖與策略模式意圖不同:模板方法模式工做是定義一個算法的大綱,而由其子類定義其中某些步驟的內容。這麼一來,其在算法中的個別步驟能夠有不一樣的實現細節,可是算法的結構依然維持不變。不過策略模式就不同了。彷佛必須放棄對算法的控制。模板方法模式對算法有更多的控制權,並且不會重複代碼。 方法

策略模式:由於使用了組合,因此更加有彈性。依賴程度沒有模板方法模式那麼深。不依賴任何對象,整個算法本身搞定。 工作

相關文章
相關標籤/搜索