通过反射构造枚举的java设计模式

wqsoz72f  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(243)

我面临以下情况:
数据库条目将转换为枚举
这些条目与枚举常量不同
例如,我有一个条目:
应该Map到枚举的苹果蛋糕 APPLE_CAKE 因此,在调用之前,这涉及到字符替换等 valueOf . 因为我将数据库实体Map到java对象,所以我是通过反射来实现的。
如果找到枚举字段并读取数据库值,我需要调用相应的构造函数。我目前的解决方案是使用标记接口 Entity 在这里我记录了如何实现一个定制的静态方法 fromString(String) .
我不喜欢这个想法的地方是实现者没有被迫实现静态方法。所以我在想,难道没有一个合适的创作模式可以应用于这种情况吗?

tjrkku2a

tjrkku2a1#

为示例创建指定接口的最佳模式是抽象工厂模式
创建一个名为 EntityFactory 或者类似的。为每个人建立一个混凝土工厂 Entity 类型。使用这些工厂示例创建 Entity 示例。

public interface EntityFactory<T extends Entity>
    T create(String str);
}

相关问题