适用场景 多个类有不同的表现形式,每种业务可以以不同的实现,实现具体业务,体现设计原则中单一原则。需要再不同情况下使用不同的具体业务实现,后期业务可能还会增加。对用户隐藏算法逻辑。 优点 每个算法单独封装,减少了算法和算法调用者的耦合。合理使用继承有助于提取出算法中的公共部分。简化了单元测试。 缺点 策略模式只适用于客户端知道所有的算法或行为的情况。策略模式造成很多的策略类,每个具体策略类都会产生一个新类。不过可以使用享元模式来减少对象的数量。 类图 step1 定义策略接口,抽出业务公共特征,具体成函数 step2 定义业务类型 step3 根据不同业务类型,执行不同实现 step4 客户端调用