🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## **模式的定义** 定义了一组算法,将每个算法都封装起来,并且使它们之间可以互换。 举个传销的栗子,传销体系结算中,一级代理、二级代理、三级代理等等都有他们对应等级的结算算法,那我们就可以利用策略模式封装每级代理的结算算法,并提供统一的结算方法,只要输入代理等级就可以输出对应的结算金额。 ## **代码实现** 1. 定义标准结算算法策略并实现各个级别的结算策略 ``` // 定义抽象算法策略 public abstract class Strategy { // 结算 abstract void settle(); } // 实现一级代理结算策略 public class Level1Strategy extends Strategy{ @Override void settle() { System.out.println("一级代理结算"); } } // 实现二级代理结算策略 public class Level2Strategy extends Strategy{ @Override void settle() { System.out.println("二级代理结算"); } } ``` 2. 创建对外调用的结算实例 ``` public class SettleContext { private Strategy strategy; public SettleContext(Strategy strategy) { this.strategy = strategy; } // 执行 public void execute() { strategy.settle(); } } ``` 3. 客户端调用 ``` public static void main(String[] args) { SettleContext context1 = new SettleContext(new Level1Strategy()); context1.execute(); SettleContext context2 = new SettleContext(new Level2Strategy()); context2.execute(); } ```