我目前正在开发一个日志数据呈现程序。有不同类型的日志数据,如
输入文本
,
,
中间文本
等等,日志存储在数据库中,其中每一行包含对应的
.
日志类型
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
直接值,这意味着在代码中需要更多的工作来转换直接值
价值
问题:在这种情况下
枚举
完全合适?