策略模式

在开发中,你肯定写过这样的代码:一个函数里面一长串 if-else 或 switch-case,根据不同的类型执行不同的逻辑。

最初只有两三个分支,看起来还挺清爽。但随着需求增长,分支越来越多,每加一种新类型都要打开这个函数往里塞代码,改着改着就变成了几百行的「if-else 地狱」。

策略模式(Strategy Pattern) 就是专门治这个病的。它把每种算法/行为封装成独立的类,让它们可以互相替换,而使用它们的代码完全不需要知道具体用的是哪一种。

这是继 观察者模式 之后我们介绍的第二个行为型设计模式。观察者模式关注「一个对象变化时如何通知其他对象」,而策略模式关注的是「同一件事有多种做法时如何优雅地切换」。