Какие из перечисленных ниже вы бы предпочли:Различные дизайнерские решения с тем, если-иначе-заявления
SomeEnum enum = SomeEnum.SOMETHING;
if (aString.equals(anotherString)) {
enum = SomeEnum.SOMETHING_ELSE;
}
return foo.bar(enum);
или
if (aString.equals(anotherString)) {
return foo.bar(SomeEnum.SOMETHING_ELSE);
}
return foo.bar(SomeEnum.SOMETHING);
Я думаю, что я предпочел бы первый, потому что он имеет только 1 очко возврата. С другой стороны, я думаю, что второй легче читать. Как вы думаете? Возможно, у вас есть еще более сложное решение.
Я лично использовал бы дополнительную локальную переменную, но с условным оператором: 'SomeEnum x = aString.equals (anotherString)? SomeEnum.SOMETHING_ELSE: SomeEnum.SOMETHING; return foo.bar (x); 'Не добавляя это в качестве ответа, поскольку это действительно вопрос мнения. –
Планируете ли вы иметь несколько перечислений или код, о котором идет речь, единственный вариант использования, который у вас есть для этого? – christopher
Несколько перечислений? Я просто говорю об одном перечислении здесь, и это «SomeEnum». – Chris311