亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

策略模式和模板模式該怎么區分?

策略模式和模板模式該怎么區分?

慕仙森 2018-08-03 21:27:32
看了這兩個設計模式之后, 對于簡單直接的例子可以判斷, 策略模式就是定義算法族, 然后通過組合算法族和委托的辦法來實現類, 模板方法則是父類定義算法的骨架,子類再來實現骨架中的部分步驟;但是有兩個例子我很不理解:1. thingking in java里面有講到File.list(FilenameFilter filter)和FilenameFilter就是策略設計模式. 這是書中的原文:因為list()實現了基本的功能, 而且按照FilenameFilter的形式提供了這個策略, 以便完善list()在提供服務時所需的算法我覺著 list()在內部使用FilenameFilter, 也可以理解為File定義好了算法骨架, 由FilenameFilter補齊部分步驟, 這么想 這就是 模板方法; Arras.sort()head first設計模式 里面講到Arrays.sort(Object[] objects)和``Comparable```是模板方法設計模式. 這是head first的原文:因為這個模式的重點在于提供一個算法, 并讓子類實現某些步驟而數組的排序做法明顯也是如此.我是這么想的: sort()函數提供了基本的功能, 元素的比較由comparable算法族來實現; 我這樣想, sort()函數就是策略模式;到底這兩者該怎么區分呢? 還是我的理解哪里有問題?
查看完整描述

2 回答

?
慕容森

TA貢獻1853條經驗 獲得超18個贊

設計模式只是抽象的結果。而抽象的主要作用就是增加代碼的可讀性,復用性和可擴展性。所以不用刻意去在乎到底使用的是模板還是策略。

查看完整回答
反對 回復 2018-08-06
  • 2 回答
  • 0 關注
  • 2001 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號