策略模式属于行为模式,定义了一系列算法并封装起来,之间可以互相替换。策略模式主要解决在有多种算法相似的情况下,使用if/else所带来的难以维护。
优点是算法可以自由切换,可以避免使用多重条件判断并且扩展性良好,缺点是策略类会增多并且所有 策略类都需要对外暴露。
在集合框架中,经常需要通过构造方法传入一个比较器Comparator进行比较排序。Comparator 就是一个抽象策略,一个类通过实现该接口并重新写Comparator方法成为具体策略类。
创建线程池时,需要传入拒绝策略,当创建新线程使当前运行的线程数超过时maximumPoolSize时会使用相应的拒绝策略处理。