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

Posted 嘉禾世兴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《设计模式之禅》--策略扩展:策略枚举相关的知识,希望对你有一定的参考价值。

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

需求:加减法计算

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)

以上是关于《设计模式之禅》--策略扩展:策略枚举的主要内容,如果未能解决你的问题,请参考以下文章

《设计模式之禅》之策略模式

《设计模式之禅》Strategy_Pattern--策略模式

策略模式

策略模式及优化

策略模式的应用

《设计模式之禅》之代理模式