思想: 將某個行爲抽離成行爲策略接口, 其實現類表示此行爲有多種策略方式;
- 鴨子案例
- 野鴨, 飼養鴨, 玩具鴨;
- 每個品種的鴨子對游泳這個行爲有不同的表現;
- 野鴨游泳很厲害, 飼養鴨游泳一般, 玩具鴨不能自己游泳;
- 未使用策略模式
- 繼承鴨子後, 子類鴨子都能獲得其鴨子的行爲, 而飼養鴨和玩具鴨不能具備飛行功能, 因此還要重寫(違背了里氏替換原則);
- 使用策略模式
- Java中用到的地方
- Arrays.sort排序(data, comparator)
思想: 將某個行爲抽離成行爲策略接口, 其實現類表示此行爲有多種策略方式;
- 鴨子案例
- 野鴨, 飼養鴨, 玩具鴨;
- 每個品種的鴨子對游泳這個行爲有不同的表現;
- 野鴨游泳很厲害, 飼養鴨游泳一般, 玩具鴨不能自己游泳;
- 未使用策略模式
- 繼承鴨子後, 子類鴨子都能獲得其鴨子的行爲, 而飼養鴨和玩具鴨不能具備飛行功能, 因此還要重寫(違背了里氏替換原則);
- 使用策略模式
- Java中用到的地方
- Arrays.sort排序(data, comparator)