Вы можете сделать экземпляры ленивой загрузки при использовании.т.е. конструктор на самом деле не выполняет дорогостоящую работу.В методах для этих перечислений вы добавляете метод checkLoaded () в методы, которым это необходимо.Это не должен быть каждый метод в зависимости от того, что он делает.