/ / Java Enum и управление на държавата - java, пролет, enums

Java Enum и управляващо състояние - java, spring, enums

Искам да използвам и тип „Изброяване“, за да представям флагчета за функции в моето приложение. Типът на изброяване има състояние и описание. Искам да мога да направя нещо като следното в моя код;

FeatureFlag.FANCYFEATURE.isActive()

След това методът isActive () ще извика към клас услуги, който се свързва с база данни, за да получи състоянието на характеристиките.

Но в моето пролетно приложение не е възможно да се инжектира боб в Enum, тъй като типът Enum е статичен.

Може ли някой да препоръча чист начин за това?

Отговори:

4 за отговор № 1

Следното твърдение трябва да ви каже, че нещо не е наред

След това методът isActive () ще извика в сервизен клас свързване към база данни за получаване на състоянието на функциите

Ако извличате състоянието, можем да предположим, че може да е различно в различно време, т.е. не е константа. Не използвайте enum за това.

И ако го направихте, да отговорите

Може ли някой да препоръча чист начин за това?

Няма начин да инжектирате боб в него, както казахте.


3 за отговор № 2

Във всеки случай използвайте enum за списък с функции, но моля, не използвайте enum за мутационно състояние.

Ще бъде по-добре да използвате a EnumMap<Enum,State> структура за съхранение на изменяемо състояние срещу enum.