Является ли enum правильным решением, если исходные значения enum хранятся в базе данных? - PullRequest
0 голосов
/ 24 января 2019

В настоящее время я работаю над программой рендеринга данных журнала. Существуют различные типы данных журнала, такие как INPUT TEXT , OUTPUT TEXT , INTERMEDIATE TEXT и т. Д., И журналы хранятся в базе данных, где каждая строка содержит соответствующий тип журнала .

Способы передачи данных журнала с различными типами журнала s отличаются друг от друга, и поэтому я планирую применить simple factory с интерфейсом TextLogger, содержащим несколько реализаций такие как InputTextLogger, OutputTextLogger. Фабрика LoggerFactory может выглядеть так:

public class LoggerFactory {
  public TextLogger createLogger(String logTypeValue) {
    //use switch case or if condition here to return concrete instance of TextLogger
  }
}

Альтернативой является возвращение TextLogger с enum в качестве аргумента:

public class LoggerFactory {
  public TextLogger createLogger(LogType logType) {
    //use switch case to return concrete instance of TextLogger
  }
}

Использование enum выглядит более понятным. Однако значения типа журнала хранятся в базе данных, где мы обычно получаем значение String напрямую, что означает, что в коде требуется больше усилий для преобразования прямого значения String в enum

Вопрос: в этом случае подходит ли вообще использование enum?

...