考虑以下枚举:
enum Size{
SMALL,
MIDDLE,
LARGE
}
我们将使用其 toString
方法将其保存到数据库中。现在,稍后我们决定将 MIDDLE
更改为 MEDIUM
。但我们无法更新数据库,因此现在我们将混合存储 MIDDLE
和 MEDIUM
值。
有哪些设计模式可以处理这种转换java?
最佳答案
枚举代表java程序中的常量。所以理想情况下它们不应该被改变。 但是,如果您有无法避免这种情况的需求/用例,那么还有一种更简洁的方法可以做到这一点。
考虑下面的代码:
public enum Size {
SMALL("SMALL"),
MEDIUM("MIDDLE"),
LARGE("LARGE");
String dbName;
Size(String dbName) {
this.dbName = dbName;
}
public String getDbName() {
return dbName;
}
}
调用函数:
public class Test {
public static void main(String[] args) {
System.out.println(Size.MEDIUM.toString());
System.out.println(Size.MEDIUM.getDbName());
}
}
但是为此,您必须在持久层中将 toString
替换为 getDbName()
。
输出:
MEDIUM
MIDDLE
关于java - 当域对象发生变化但数据库没有变化时,有哪些设计模式可以处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58260479/