用java写一个策略模式
策略模式是一种设计模式,它定义了一系列算法,并将每个算法封装起来,使它们可以相互替换。策略模式使得算法的变化独立于使用算法的客户端。
下面是一个简单的Java代码示例,演示了如何实现策略模式:
首先,我们定义一个接口,该接口定义了所有算法的方法:
public interface IStrategy { public int execute(int a, int b); }
然后,我们实现几个不同的算法:
public class Add implements IStrategy { @Override public int execute(int a, int b) { return a + b; } }
public class Subtract implements IStrategy { @Override public int execute(int a, int b) { return a - b; } }
public class Multiply implements IStrategy { @Override public int execute(int a, int b) { return a * b; } }
接下来,我们定义一个Context类,该类将使用策略模式来执行算法:
public class Context { private IStrategy strategy;
public Context(IStrategy strategy) {
this.strategy = strategy;
}
public int executeStrategy(int a, int b) {
return strategy.execute(a, b);
}
}
最后,我们可以使用Context类来执行不同的算法:
public class Main { public static void main(String[] args) { Context context = new Context(new Add()); System.out.println("Add: " + context.executeStrategy(10, 5));
context = new Context(new Subtract());
System.out.println("Subtract: " + context.executeStrategy(10, 5));
context = new Context(new Multiply());
System.out.println("Multiply: " + context.executeStrategy(10, 5));
}
}
输出结果为:
Add: 15 Subtract: 5 Multiply: 50
这个例子演示了策略模式的基本实现,它允许我们在运行时动态地选择不同的算法。这种灵活性可以使我们的代码更易于维护和扩展。
原文地址: https://www.cveoy.top/t/topic/bLms 著作权归作者所有。请勿转载和采集!