ИМХО, сделайте это public static enum
внутри class Person
.
Причина в том, что enum Gender
применяется только к человеку, поэтому поместите его туда, чтобы они были связаны друг с другом (Пол не имеет смыслабез контекста Person).
Верх:
- меньше раздувания классов
- если вы переместите Person в другой пакет / проект, Gender всегда будет сэто
- Персона, которая является единственным пользователем, имеет «контроль» над ним и может изменять его, как хочет, например:
- добавление
private List<HealthIssue> genderSpecificHealthIssues;
- добавление дополнительных перечислений,например,
TRANSGENDER
, INTERSEX
или что-то еще
Единственным недостатком является то, что вы должны использовать static
для его импорта, то есть import static com.company.Person.Gender.*;
.
Этот шаблон встречается во многих классах JDK, например, Calendar
, который определяет множество связанных с датой констант, которые он использует внутри класса.