Початкова стаття здається мені чудовою. Проте, виходячи з коментарів, здається, деякі коментарі стосовно перечислення Java можуть пояснити деякі речі.
Тип Enum у Java є класом за визначенням, але багато програмістів, як правило, про це забувають, оскільки вони радше відносять його до "списку дозволених значень", як у деяких інших мовах. Це більше, ніж це.
Отже, щоб уникнути цих операторів перемикання, можливо, було б доцільно помістити якийсь код та додаткові методи в клас enum. Майже ніколи не виникає необхідності створювати окремий "реальний клас, подібний до переліку".
Враховуйте також пункт документації - чи хочете ви задокументувати фактичне значення вашого переліку в базі даних? У вихідному коді, що відображає значення (ваш тип перерахування), або в якійсь зовнішній документації? Я особисто віддаю перевагу вихідному коду.
Якщо ви хочете представити значення перерахування як цілі числа в базі даних через швидкість або з будь-якої іншої причини, це відображення також повинно знаходитися в переліченні Java. Ви отримаєте відображення імен рядків за замовчуванням, і я цим задовольнився. З кожним значенням перерахування пов’язаний порядковий номер, але використовувати його безпосередньо як відображення між кодом та базою даних не дуже яскраво, оскільки цей порядковий номер зміниться, якщо хтось змінить порядок значень у вихідному коді. Або додає додаткові значення перерахування між існуючими значеннями. Або видаляє якесь значення.
(Звичайно, якщо хтось змінює ім'я переліку у вихідному коді, відображення рядків за замовчуванням теж прогинається, але це менш імовірно, що трапиться випадково. І ви можете легше захистити від цього, якщо потрібно, поставивши перевірку часу виконання і перевірити обмеження в базі даних, як вже було запропоновано тут.)