当前位置: 首页> 科技> 数码 > 全网最简单的Java设计模式【九】策略模式-实战中最常用的设计模式之一

全网最简单的Java设计模式【九】策略模式-实战中最常用的设计模式之一

时间:2025/8/11 12:55:59来源:https://blog.csdn.net/wcblog/article/details/141469776 浏览次数:0次

策略模式是一种行为设计模式,它允许你定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。该模式让算法的变化独立于使用算法的客户。在实际开发中,策略模式可以帮助我们减少大量的 if-elseswitch 条件判断语句,使代码更加灵活和易于维护。

前段时间我与大厂的几位朋友闲聊,策略模式是他们日常开发工作中最常用的设计模式之一。

一、策略模式的结构

策略模式主要涉及三个角色:

  • Context(环境类):环境类用于维护对策略对象的引用。
  • Strategy(抽象策略类):这是一个抽象类或接口,为所有的具体策略类声明了共同的接口。
  • ConcreteStrategy(具体策略类):实现了在抽象策略类中声明的算法或行为。

类图如下:
在这里插入图片描述

二、Java 代码实战

假设我们要开发一个简单的计算器程序,支持多种运算策略,如加法、减法和乘法。我们可以使用策略模式来设计这个程序。

1. 定义抽象策略类(Operation)

public interface Operation {  int calculate(int num1, int num2);  
}

2. 实现具体策略类

  • 实现加法策略
public class AddOperation implements Operation { @Override  public int calculate(int num1, int num2) {  return num1 + num2;  }  }
  • 实现减法策略
public class SubtractOperation implements Operation {  @Override  public int calculate(int num1, int num2) {  return num1 - num2;  }  }

3. 环境类(Calculator)

public class Calculator {  private Operation operation;  public Calculator(Operation operation) {  this.operation = operation;  }  public int executeOperation(int num1, int num2) {  return operation.calculate(num1, num2);  }  public void setOperation(Operation operation) {  this.operation = operation;  }  
}

示例代码说明:

  • Operation:这是一个抽象策略接口,定义了一个计算方法 calculate,所有的运算策略都必须实现这个方法。
  • AddOperationSubtractOperation:这两个类实现了 Operation 接口,分别提供了加法、减法的实现。
  • Calculator:这是环境类,它持有一个 Operation 的引用,可以在运行时动态地改变运算策略。

4. 使用示例

1)示例代码

public class StrategyPatternDemo {  public static void main(String[] args) {  Calculator calculator = new Calculator(new AddOperation());  System.out.println("10 + 5 = " + calculator.executeOperation(10, 5));  calculator.setOperation(new SubtractOperation());  System.out.println("10 - 5 = " + calculator.executeOperation(10, 5));  }  
}
  • 在这个示例中,我们首先使用 加法策略 进行计算,然后通过 setOperation 方法动态地改变策略为 减法,展示了策略模式的灵活性和可替换性。

2)运行结果

10 + 5 = 15
10 - 5 = 5

总结

策略模式是一种非常实用的设计模式,它可以帮助我们减少大量的 条件判断语句,使代码更加灵活和易于维护。通过定义一系列的算法族,并将每一个算法封装起来,使它们可以互相替换,策略模式让算法的变化独立于使用算法的用户。在实际开发中,我们可以根据需要使用策略模式来优化代码结构。

遇见即是缘分,关注🌟、点赞👍、收藏📚,让这份美好延续下去!

🌟 更多技术管理学习路径 请关注下方 【技术管理修行】

关键字:全网最简单的Java设计模式【九】策略模式-实战中最常用的设计模式之一

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: