在Java中實現策略設計模式,可以按照如下步驟進行:
定義一個策略接口(或者抽象類),該接口包含多個具體策略類共同的方法。
創建具體的策略類,實現策略接口,并重寫接口中的方法。每個具體策略類代表一個具體的策略實現。
在使用策略的類中,定義一個成員變量來保存策略對象,并提供設置策略對象的方法。
在使用策略的類中,調用策略對象的方法來執行具體的策略。
在客戶端代碼中,根據需要選擇具體的策略對象,并將其設置到使用策略的類中。
下面是一個簡單的示例代碼:
public interface Strategy {
void execute();
}
public class ConcreteStrategyA implements Strategy {
@Override
public void execute() {
System.out.println("執行策略A");
}
}
public class ConcreteStrategyB implements Strategy {
@Override
public void execute() {
System.out.println("執行策略B");
}
}
public class Context {
private Strategy strategy;
public void setStrategy(Strategy strategy) {
this.strategy = strategy;
}
public void executeStrategy() {
if (strategy != null) {
strategy.execute();
}
}
}
public class Client {
public static void main(String[] args) {
Context context = new Context();
// 使用策略A
Strategy strategyA = new ConcreteStrategyA();
context.setStrategy(strategyA);
context.executeStrategy();
// 使用策略B
Strategy strategyB = new ConcreteStrategyB();
context.setStrategy(strategyB);
context.executeStrategy();
}
}
運行上述代碼,輸出結果為:
執行策略A
執行策略B
這樣就實現了策略設計模式。不同的具體策略類實現了相同的策略接口,通過在使用策略的類中設置不同的具體策略對象,可以在運行時靈活地選擇和切換不同的策略實現。