Искам да използвам и тип „Изброяване“, за да представям флагчета за функции в моето приложение. Типът на изброяване има състояние и описание. Искам да мога да направя нещо като следното в моя код;
FeatureFlag.FANCYFEATURE.isActive()
След това методът isActive () ще извика към клас услуги, който се свързва с база данни, за да получи състоянието на характеристиките.
Но в моето пролетно приложение не е възможно да се инжектира боб в Enum, тъй като типът Enum е статичен.
Може ли някой да препоръча чист начин за това?
Отговори:
4 за отговор № 1Следното твърдение трябва да ви каже, че нещо не е наред
След това методът isActive () ще извика в сервизен клас свързване към база данни за получаване на състоянието на функциите
Ако извличате състоянието, можем да предположим, че може да е различно в различно време, т.е. не е константа. Не използвайте enum
за това.
И ако го направихте, да отговорите
Може ли някой да препоръча чист начин за това?
Няма начин да инжектирате боб в него, както казахте.
3 за отговор № 2
Във всеки случай използвайте enum
за списък с функции, но моля, не използвайте enum
за мутационно състояние.
Ще бъде по-добре да използвате a EnumMap<Enum,State>
структура за съхранение на изменяемо състояние срещу enum
.