您的位置:首页 > 其它

一个使用enum实现多态的例子

2016-08-03 22:42 453 查看
下面的写法与直接 使用静态方法而言,可读性、可维护性更强
是不是有DSL的感觉....

当然enum反编译后,的确就是静态方法。

/**
* Created by MyWorld on 2016/8/3.
*/
public enum Operation {
PLUS("+") {
@Override
public int apply(int x, int y) {
return x + y;
}
}, MINUS("-") {
@Override
public int apply(int x, int y) {
return x - y;
}
}, TIMES("*") {
@Override
public int apply(int x, int y) {
return x * y;
}
}, DIVIDE("/") {
@Override
public int apply(int x, int y) {
return x / y;
}
};

private String op;

Operation(String op) {
this.op = op;
}

public abstract int apply(int x, int y);

public String getOp() {
return op;
}

public void setOp(String op) {
this.op = op;
}

public static void main(String[] args) {
System.out.println(Operation.PLUS.apply(1, 2));
}

}


感谢刘光聪在简书上的分享
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: