https://www.nowcoder.com/feed/main/detail/e5d3346e0efe4666829e4223f94eba8e?sourceSSR=search

https://kunyuan.tech/archives/776

优点

算法可以自由切换。这是策略模式本身的定义,只要实现抽象策略就可以作为一个“策略”

避免使用多重条件判断。可以减少if-else的使用

拓展性良好。

缺点

策略类数量增多,且可复用性小

所有策略都要对外暴露。上层模块必须知道有哪些策略,然后才能决定使用,幸运的是可以使用其他模式来修正这个缺陷,如:工厂方法模式、代理模式、享元模式