看了這兩個設計模式之后, 對于簡單直接的例子可以判斷, 策略模式就是定義算法族, 然后通過組合算法族和委托的辦法來實現類, 模板方法則是父類定義算法的骨架,子類再來實現骨架中的部分步驟;但是有兩個例子我很不理解: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()函數就是策略模式;到底這兩者該怎么區分呢? 還是我的理解哪里有問題?
添加回答
舉報
0/150
提交
取消