将枚举转换为类,反之亦然

StK*_*ler 6 java enums

目前,我们有一个业务实体可以表示为枚举或类。

类实现更简单,业务逻辑更清晰。但需求有 50% 的可能性会发生变化,而枚举表示将使我们的生活变得更轻松。

具体例子

实体有标题和颜色。颜色是可编辑的,所以有两种方法

  1. 实体是一个枚举 - 还有另一个类具有从实体到其颜色的映射。
  2. 实体是一个类 - 只需多一个颜色字段,没有问题。

未来的变更要求 - 应该有与每个实体相关的规则

  1. 实体是一个枚举 - 规则被硬编码在代码中
  2. 实体是一个类 - 还需要一些用于映射的类,并且还需要一个允许用户指定它们的 UI。

如果规则集是静态的,那么第二个选项就太过分了。

那么,如果我们需要将类转换为枚举,对于这个过程有什么建议吗?

编辑

实体集是有限的并且不太可能被用户改变。

先感谢您。

Lau*_*uri 2

如果您想要枚举中的一些功能和类中的一些功能,那么您可以混合使用这些功能:

  public class ColoredTitle
    {

        private String color;
        private Title title;

        public ColoredTitle(String color, Title title)
        {
            this.color = color;
            this.title = title;
        }

        public String getColor()
        {
            return color;
        }

        public void setColor(String color)
        {
            this.color = color;
        }

        public String getHeading()
        {
            return title.heading;
        }

        enum Title
        {
            FRONT_PAGE("Front Page"),
            FOOTER_TITLE("Footer Title");

            private String heading;

            Title(String title)
            {
                this.heading = title;
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)