Java二十三种设计模式-策略模式(13/23)
策略模式定义了一系列的算法,并将每个算法封装起来,使它们可以互换。策略模式让算法的变化不会影响到使用算法的客户。
以下是策略模式的一个简单示例:
// 定义一个策略接口
interface Strategy {
void execute();
}
// 实现策略接口的一个具体策略
class ConcreteStrategyA implements Strategy {
public void execute() {
System.out.println("Called ConcreteStrategyA.execute()");
}
}
// 实现策略接口的另一个具体策略
class ConcreteStrategyB implements Strategy {
public void execute() {
System.out.println("Called ConcreteStrategyB.execute()");
}
}
// 策略的上下文,用来保存和执行策略
class Context {
private Strategy strategy;
public Context(Strategy strategy) {
this.strategy = strategy;
}
public void execute() {
strategy.execute();
}
}
// 使用策略模式的示例
public class StrategyPatternExample {
public static void main(String[] args) {
// 创建策略对象
Strategy strategyA = new ConcreteStrategyA();
Strategy strategyB = new ConcreteStrategyB();
// 设置策略并执行
Context contextA = new Context(strategyA);
contextA.execute();
Context contextB = new Context(strategyB);
contextB.execute();
}
}
在这个例子中,有一个策略接口Strategy
和两个实现了该接口的具体策略类ConcreteStrategyA
和ConcreteStrategyB
。Context
类保存了一个策略对象,并调用其execute
方法。在main
方法中,我们创建了两个策略对象并通过Context
类执行它们的算法。这样,算法的变化不会影响到使用算法的上下文。
评论已关闭