策略模式之枚举

2019-07-31  本文已影响0人  Joylice
  1. 策略枚举定义

  1. 代码展示

package com.company.context;

/**
 * @Author: Joylice
 * @Date: 2019/7/31 9:48
 */

/**
 * 策略枚举
 */
public enum Calculator {
    /**
     * 逻辑处理1
     */
    ADD("+") {
        @Override
        public String exec(int a, int b) {
            return a + value + b;
        }
    },
    /**
     * 逻辑处理2
     */
    SUB("-") {
        @Override
        public String exec(int a, int b) {
            return a +value+ b;
        }
    };
    String value = "";

    Calculator(String _value) {
        this.value = _value;
    }

    public String getValue() {
        return this.value;
    }

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

  1. 盘它

public static void main(String[] args) {
        int a = 5;
        int b = 3;
        String result = Calculator.ADD.exec(a, b);
        System.out.println("+结果之和:" + result);
        String res = Calculator.SUB.exec(a, b);
        System.out.println("-结果之差:" + res);
    }
  1. 结果

+结果之和:5+3
-结果之差:5-3
  1. 注意

    策略枚举是一个非常优秀和方便的模式,但是它受枚举类型的限制,每个枚举项都是 “public final static ”,扩展性受到了一定的约束,因此在系统开发中,策略枚举一般担当不经常发生变化的角色。
上一篇下一篇

猜你喜欢

热点阅读