策略模式之策略列舉
阿新 • • 發佈:2019-02-13
在使用策略模式時,我們要建立相應的策略,然後根據不同的場景使用不同的策略,這是可以的,但畢竟那是一堆的策略類,使用起來程式碼的可讀性、擴充套件性也就一般,這種情況下我們可以使用策略模式的升級版---策略列舉來解決上邊的問題
列舉類:
public enum StrategyEnum { ADD("+") { @Override public int exec(int a, int b) { return a+b; } }, SUB("-") { @Override public int exec(int a, int b) { return a-b; } }, MUTI("*") { @Override public int exec(int a, int b) { return a*b; } }; StrategyEnum(String value) { this.value = value; } private String value; public String getValue() { return value; } public void setValue(String value) { this.value = value; } public abstract int exec(int a, int b); }
測試類:
public class StrategyEnumTest {
public static void main(String[] args) {
System.out.println( StrategyEnum.ADD.exec(2,4));
System.out.println( StrategyEnum.SUB.exec(2,4));
System.out.println( StrategyEnum.MUTI.exec(2,4));
}
}
執行結果:
怎麼樣,這樣的一堆策略是不是看起來很清爽,程式碼的可讀性、可擴充套件性就高很多了
差點忘了,這個是從設計模式之禪這本書上溫習時看到的,雖然簡單,但是許多的簡單技巧拼湊起來,你的程式碼就會不一樣