1.策略模式Strategy pattern 今天药忘吃喽~ 2023-01-17 10:55 75阅读 0赞 **1.场景:** 三个妙计,一个锦囊,一个赵云,妙计是小亮同志给的,妙计是放置在锦囊里 **2.类图** ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zOTc5NTA0OQ_size_16_color_FFFFFF_t_70] **3.程序** public interface IStrategy { void operate(); } public class BackDoor implements IStrategy{ @Override public void operate() { System.out.println("backdoor"); } } public class BlockEnemy implements IStrategy { @Override public void operate() { System.out.println("BlockEnemy"); } } public class GivenGreenLight implements IStrategy { @Override public void operate() { System.out.println("GivenGreenLight"); } } public class Context { //构造函数,使用哪个 private IStrategy strategy; public Context(IStrategy strategy) { this.strategy = strategy; } public void operate(){ this.strategy.operate(); } } public class Zhaoyun { public static void main(String[] args) { Context context; System.out.println("1"); context = new Context(new BackDoor()); context.operate(); System.out.println(); System.out.println("2"); context = new Context(new GivenGreenLight()); context.operate(); System.out.println(); System.out.println("3"); context = new Context(new BlockEnemy()); context.operate(); System.out.println(); } } **4.策略模式的好处就是**: 体现了高内聚低耦合的特性,扩展性,即 OCP 原则,策略类可以继续增加下去,只要修改 Context.java 就可以了 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zOTc5NTA0OQ_size_16_color_FFFFFF_t_70]: /images/20221021/191750097e234b3da3ae457661d817ca.png
还没有评论,来说两句吧...