《设计模式之禅》--策略扩展:策略枚举

接上篇《设计模式之禅》--代理扩展:动态代理

需求:加减法计算

public enum Calculator {
    //加法运算
    ADD("+") {
        public int exec(int a, int b) {
            return a + b;
        }
    },
    //减法运算
    SUB("-") {
        public int exec(int a, int b) {
            return a - b;
        }
    };
    String value = "";

    //定义成员值类型
    private Calculator(String _value) {
        this.value = _value;
    }

    //获得枚举成员的值
    public String getValue() {
        return this.value;
    }

    //声明一个抽象函数
    public abstract int exec(int a, int b);
}

调用

public class Client {
    public static void main(String[] args) {
        //输入的两个参数是数字
        int a = Integer.parseInt(args[0]);
        String symbol = args[1]; //符号
        int b = Integer.parseInt(args[2]);
        System.out.println("输入的参数为:" + Arrays.toString(args));
        System.out.println("运行结果为:" + a + symbol + b + "=" + Calculator.ADD.exec(a, b));
    }
}

关键

Calculator.ADD.exec(a, b)

原文地址:https://www.cnblogs.com/anni-qianqian/p/8442124.html