gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 15:12:40 25 4
gpt4 key购买 nike

我面临以下情况:

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

例如我有一个条目:

Apple cake 应该映射到枚举 APPLE_CAKE

因此,在调用 valueOf 之前,这涉及到字符替换等。由于我将数据库实体映射到 Java 对象,因此我通过反射来完成此操作。

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

我不喜欢这个想法的是,实现者没有被迫实现静态方法。于是我就想,有没有一种合适的创作模式可以适用于这种情况呢?

最佳答案

指定实例创建接口(interface)的最佳模式是 Abstract Factory Pattern

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

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

关于java - 通过反射构造枚举的设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12116123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com