如果不使用策略模式而是通过继承,这样算法的使用就
和算法本身混在一起,不符合 "单一职责原则",而且使用继承无法实现算法或行为在程序运行时的动态切
换。
使用策略模式可以避免多重条件选择语句。...一个对象有很多的行为,如果不用恰当的模式,这些行为就只好使用多重条件选择语句来实现。此时,使用策略模式,把这些行为转移到相应的具体策略类里面,就可以避免使用难以维护的多重条件选择语句。...: {id=1, name='李四'}, 升序后: {id=2, name='赵六'}, 升序后: {id=3, name='张三'}, 升序后: {id=4, name='王五'},
降序后: {id...: {id=1, name='李四'}, 升序后: {id=2, name='赵六'}, 升序后: {id=3, name='张三'}, 升序后: {id=4, name='王五'},
降序后: {id...() 和 Arrays.sort() 分别传入不同的比较器即可实现不同的排序效果(升序或降序)
这里 Comparator 接口充当了抽象策略角色,两个比较器 DescSortor 和 AscSortor