Для реализации перечислений (enum) часто используется шаблон проектирования "Тип Безопасного Перечисления" (Typesafe Enum). В Java до появления встроенного enum (до Java 5) этот шаблон реализовывался через создание класса с приватным конструктором и набором публичных статических финальных экземпляров этого класса.
Какой шаблон проектирования используется для реализации перечислений?
Для реализации перечислений (enum) часто используется шаблон проектирования "Тип Безопасного Перечисления" (Typesafe Enum).
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Для реализации перечислений (enum) часто используется шаблон проектирования "Тип Безопасного Перечисления" (Typesafe Enum). В Java до появления встроенного enum (до Java 5) этот шаблон реализовывался через создание класса с приватным конструктором и набором публичных статических финальных экземпляров этого класса.
Пример:
public class Day {
public static final Day MONDAY = new Day("Monday");
public static final Day TUESDAY = new Day("Tuesday");
private String name;
private Day(String name) {
this.name = name;
}
public String toString() {
return name;
}
}
С появлением enum в Java 5 рекомендуется использовать встроенный enum, который реализует этот шаблон на уровне языка.