0

我面临以下情况:

  • 数据库条目被转换为枚举
  • 这些条目与枚举常量不同

例如我有一个条目:

应该映射到枚举的苹果蛋糕APPLE_CAKE

因此,这涉及到字符替换等,然后我才能调用valueOf. 由于我将数据库实体映射到 Java 对象,因此我通过反射来实现。

如果找到枚举字段并读取数据库值,我需要调用适当的构造函数。我目前的解决方案是使用Entity我已经记录的标记接口来实现自定义静态方法 fromString(String)

我不喜欢这个想法的地方是实现者没有被强制实现静态方法。所以我在想,是不是有一个合适的创造模式可以应用在这种情况下?

4

1 回答 1

1

为实例创建指定接口的最佳模式是抽象工厂模式

EntityFactory制作一个名为或类似的额外接口。Entity为每种类型实现一个具体工厂。使用这些工厂实例来创建Entity实例。

public interface EntityFactory<T extends Entity>
    T create(String str);
}
于 2012-08-24T20:40:00.150 回答