策略模式定義了一系列的算法,並將每個算法封裝起來,並且使他們能夠相互替換,讓算法獨立於使用它的客戶而獨立變化。java
1.在系統裏面許多類,類之間區別僅在於方法行爲,那麼策略模式能夠動態的從一個對象在許多行爲中選擇一種行爲
2.一個系統須要動態地在幾種算法中選擇一種算法
抽象策略類測試
public interface Strategy(){ public void print(); }
具體策略類this
public class PrintA implements Strategy{ public void print(){ System.out.println("我是A"); } } public class PrintB implements Strategy{ public void print(){ System.out.println("我是B"); } }
環境角色code
public class Context{ private Strategy strategy; public Context(Strategy strategy){ this.strategy = strategy; } public void contextInterface(){ strategy.print(); } }
測試對象
public static void main(String[] args){ Context context = new Context(new PrintA()); context.contextInterface(); Context context = new Context(new PrintB()); context.contextInterface(); }