java 設計模式-策略模式
阿新 • • 發佈:2019-02-19
12c str state app cts adf tro data- baidu
概念
將每一種算法都封裝到具有共同接口的獨立類中,從而使他們可以相互替換
特點
功能特點:
算法在不影響客戶端運行的情況下發生變化,從而改變不同功能(不同算法邏輯)。
設計特點:
1封裝變化的部分
2針對接口編碼,不針對具體實現編碼
角色組成
1 抽象策略角色(A):接口或者抽象類,內含策略方法(算法)
2 具體策略角色:繼承或者實現A,並實現策略方法(算法)
3 環境角色:持有一個策略類的引用
案例
實現加減乘除功能
1、定義抽象策略角色
定義抽象策略角色
2、定義具體策略角色(本例子僅僅演示,只是定義加、減兩種具體策略)
加法策略:
減法策略:
3、環境角色
4、測試類
如果需要改變策略為減法
environment.setStategy(new SubtractStratety);
result = environment.calulate(20,30);
System.out.println(result);
end
java 設計模式-策略模式