策略模式是一種行為設計模式,它允許在運行時選擇算法的行為。策略模式定義了一系列的算法,并將每個算法封裝起來,使它們可以互換。策略模式讓算法獨立于使用它的客戶而變化,這樣可以實現(xiàn)算法的可替換性。
在Java中,實現(xiàn)策略模式可以使用enum
和Map
來實現(xiàn)。以下是一個簡單的策略模式示例:
// 枚舉類,表示所有可能的策略
public enum Strategy {
STRATEGY1,
STRATEGY2,
STRATEGY3
}
// 策略接口
public interface StrategyInterface {
void execute();
}
// 具體策略類
public class ConcreteStrategy1 implements StrategyInterface {
@Override
public void execute() {
System.out.println("執(zhí)行策略1");
}
}
public class ConcreteStrategy2 implements StrategyInterface {
@Override
public void execute() {
System.out.println("執(zhí)行策略2");
}
}
public class ConcreteStrategy3 implements StrategyInterface {
@Override
public void execute() {
System.out.println("執(zhí)行策略3");
}
}
// 上下文類,用于存儲策略并調(diào)用
public class Context {
private Strategy strategy;
public Context(Strategy strategy) {
this.strategy = strategy;
}
public void execute() {
strategy.execute();
}
}
public class Main {
public static void main(String[] args) {
StrategyInterface strategy1 = new ConcreteStrategy1();
StrategyInterface strategy2 = new ConcreteStrategy2();
StrategyInterface strategy3 = new ConcreteStrategy3();
Context context1 = new Context(strategy1);
Context context2 = new Context(strategy2);
Context context3 = new Context(strategy3);
context1.execute(); // 輸出:執(zhí)行策略1
context2.execute(); // 輸出:執(zhí)行策略2
context3.execute(); // 輸出:執(zhí)行策略3
}
}
在這個示例中,我們定義了一個Strategy
枚舉類,表示所有可能的策略。然后實現(xiàn)了一個StrategyInterface
接口,定義了一個execute()
方法。接下來,我們創(chuàng)建了三個具體的策略類(ConcreteStrategy1
、ConcreteStrategy2
和ConcreteStrategy3
),分別實現(xiàn)了StrategyInterface
接口。最后,我們創(chuàng)建了一個Context
類,用于存儲策略并調(diào)用。
本文內(nèi)容根據(jù)網(wǎng)絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉載請注明,如有侵權,聯(lián)系刪除。