Этот вопрос касается определенной плохой практики программирования. Я ищу хорошую статью, которая объясняет это и почему это плохо. К сожалению, я не знаю ни имени, ни жаргона для этой практики. Итак, я попытаюсь описать его и попрошу рассказать мне, как это называется, и, возможно, ссылаться на хорошую статью по этому вопросу.Плохая практика относительно java enum
Предположим, что мы имеем некоторое перечисление:
public enum Day
{
SUNDAY, MONDAY, ...
}
Далее, предположим, что серверный программист присоединяет числовой идентификатор для каждого дня. Правильная вещь, конечно же, состоит в том, чтобы сопоставить каждый Day
с Integer
с использованием EnumMap
, который определен и используется только в пределах серверного кода. Вместо этого он портит общий код и добавляет getId()
метод:
public enum Day
{
SUNDAY {public int getId() {return 100;}},
MONDAY {public int getId() {return 101;}},
...;
public abstract int getId();
}
Далее, GUI программист хочет присоединить строку каждый день, поэтому он добавляет свой собственный материал:
public enum Day
{
SUNDAY {
public int getId() {return 100;}
public String getName() {return "sunday";}
},
MONDAY {
public int getId() {return 101;};
public String getName() {return monday";}
},
...;
public abstract int getId();
public abstract String getName();
}
Вы понимаете ...
Как вы это называете? Знаете ли вы какую-нибудь хорошую статью об этом?
Правильный способ: «Enum.ordinal()» вместо EnumMap. –
Я не знаю, есть ли для этого специальное имя. Непоследовательный, вероятно, лучший термин. Если вы используете метод enum и следуете парадигме конструктора, вы гарантируете, что результат будет там. – cgp
@VeriTi: прости меня. Вы читали, что [Enum API] (http://docs.oracle.com/javase/7/docs/api/java/lang/Enum.html) должен сказать об использовании 'ordinal()'? Они тоже просят отличиться. –