如何在Java中实现基于策略的动态行为

原创 柔情只为你懂 2024-11-24 06:33 113阅读 0赞

在Java中实现基于策略的动态行为,可以使用Strategy Design Pattern。这个模式定义了算法(策略)并将其封装起来,让它们可以独立使用。

以下是一个简单的示例:

  1. // 定义策略接口
  2. interface Strategy {
  3. // 计算策略
  4. int calculate(int num1, int num2));
  5. }
  6. // 实现具体策略
  7. class ConcreteStrategyA implements Strategy {
  8. @Override
  9. public int calculate(int num1, int num2)) {
  10. return num1 * num2;
  11. }
  12. }
  13. class ConcreteStrategyB implements Strategy {
  14. @Override
  15. public int calculate(int num1, int num2)) {
  16. return num1 + num2;
  17. }
  18. }
  19. // 客户端,不关心具体的策略实现
  20. class Context {
  21. private Strategy strategy;
  22. // 设置策略
  23. public void setStrategy(Strategy strategy) {
  24. this.strategy = strategy;
  25. }
  26. // 使用策略计算
  27. public int calculate(int num1, int num2)) {
  28. return strategy.calculate(num1, num2));
  29. }
  30. }
  31. // 使用示例
  32. public class Main {
  33. public static void main(String[] args) {
  34. Context context = new Context();
  35. context.setStrategy(new ConcreteStrategyA()); // 设置为策略A
  36. System.out.println(context.calculate(5, 7))); // 输出: 35
  37. context.setStrategy(new ConcreteStrategyB())); // 设置为策略B
  38. System.out.println(context.calculate(10, 20)))); // 输出: 300
  39. }
  40. }

这个示例中,Context类是上下文,它管理着策略。ConcreteStrategyAConcreteStrategyB是具体的策略实现,它们根据calculate方法的调用,计算出结果。在客户端,我们只需要设置合适的策略,就可以使用这个动态行为了。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,113人围观)

还没有评论,来说两句吧...

相关阅读