作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
以下两种方法哪种更好?我之所以选择枚举,是因为在典型情况下,子类型多态是最好的方法;这也是编写简单工厂方法时的典型方法。
public class SomeClass {
public SomeEnum returnAType(String someString) {
//implementation bellow
}
private boolean method1() {
//...
}
private boolean method2() {
//...
}
private boolean method3() {
//...
}
}
returnATypeMethod的第一个实现;这更快,因为如果方法 1 有效,它不会调用方法 2 和方法 3(可能更多)。
public SomeEnum returnAType(String someString) {
if(method1(someString)) {
SomeEnum.ENUM1.doSomething();
return SomeEnum.ENUM1;
}
if(method2(someString)) {
SomeEnum.ENUM2.doSomething();
return SomeEnum.ENUM2;
}
if(method3(someString)) {
SomeEnum.ENUM3.doSomething();
return SomeEnum.ENUM3;
}
SomeEnum.DEFAULT_ENUM.doSomething();
return SomeEnum.DEFAULT_ENUM;
}
returnATypeMethod的第二次实现;这更清楚,没有代码重复:
public SomeEnum returnAType(String someString) {
SomeEnum enumType = SomeEnum.DEFAULT_ENUM;
if(method1(someString)) {
enumType = SomeEnum.ENUM1;
}
if(method2(someString)) {
enumType = SomeEnum.ENUM2; }
}
if(method3(someString)) {
enumType = SomeEnum.ENUM3;
}
enumType.doSomething();
return enumType;
}
最佳答案
我很想使用
public SomeEnum returnAType(String someString) {
SomeEnum enumType = method1(someString) ? SomeEnum.ENUM1 :
method2(someString) ? SomeEnum.ENUM2 :
method3(someString) ? SomeEnum.ENUM3 : SomeEnum.DEFAULT_ENUM;
enumType.doSomething();
return enumType;
关于java - 选择枚举类型时好的方法设计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11609837/
我是一名优秀的程序员,十分优秀!