策略模式(Strategy Pattern):
具有一定行動內容的相對穩定的策略名稱。
策略模式定義了一系列演算法,並將每個演算法封裝起來,使它們可以相互替換,且演算法的變化不會影響使用演算法的客戶;透過對演算法進行封裝,把使用演算法的責任和演算法的實現分割開來,並委派給不同的物件對這些演算法進行管理;
策略模式的角色:抽象策略(Strategy)、具體策略(Concrete Strategy)和客戶端(Client)角色;
策略模式的案例:實現類圖:
實現程式碼:
/** * 抽象策略(Strategy) */public interface Strategy { void execute(); }
/** * 具體策略(Concrete Strategy) */public class FirstStrategy implements Strategy { public void execute() { System.out.println("FirstStrategy execute()"); } }
/** * 具體策略(Concrete Strategy) */public class SecondStrategy implements Strategy { public void execute() { System.out.println("SecondStrategy execute()"); } }
/** * 具體策略(Concrete Strategy) */public class ThirdStrategy implements Strategy { public void execute() { System.out.println("ThirdStrategy execute()"); } }
public class Context { private Strategy strategy; public Context(Strategy strategy) { this.strategy = strategy; } public void execute() { this.strategy.execute(); } }
/** * 客戶端 */public class Client { public static void main(String[] args) { Context context = null; context = new Context(new FirstStrategy()); context.execute(); context = new Context(new SecondStrategy()); context.execute(); context = new Context(new ThirdStrategy()); context.execute(); }}
最新評論