代码之家  ›  专栏  ›  技术社区  ›  Rui

如果enum的原始值存储在数据库中,enum是不是一个合适的解决方案?

  •  0
  • Rui  · 技术社区  · 5 年前

    我目前正在开发一个日志数据呈现程序。有不同类型的日志数据,如 输入文本 , , 中间文本 等等,日志存储在数据库中,其中每一行包含对应的 .

    日志类型 s彼此不同,因此我计划应用 简易工厂 有一个接口 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
      }
    }
    

    另一种方法是返回 文本记录器 enum 作为论据:

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

    枚举 看起来更容易维护。但是,日志类型的值存储在数据库中,通常在这里 String 直接值,这意味着在代码中需要更多的工作来转换直接值 价值

    问题:在这种情况下 枚举 完全合适?

    0 回复  |  直到 5 年前