gpt4 book ai didi

java - 选择枚举类型时好的方法设计?

转载 作者:行者123 更新时间:2023-11-29 05:57:12 24 4
gpt4 key购买 nike

以下两种方法哪种更好?我之所以选择枚举,是因为在典型情况下,子类型多态是最好的方法;这也是编写简单工厂方法时的典型方法。

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com