Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 枚举类型字段过多的解决方案?[改善]_Java_Enums - Fatal编程技术网

Java 枚举类型字段过多的解决方案?[改善]

Java 枚举类型字段过多的解决方案?[改善],java,enums,Java,Enums,随着项目逐渐扩展,现有的枚举类型需要扩展字段。例如,有一个名为ECityArea的枚举类,用于存储与城市相关的通知,开始时只需要城市名称,然后需要状态通知、别名、图像位置和数据库别名等。因此枚举字段有点大,如以下代码: ECityArea(String name, String state, String alias, String imageLocation, String imageFolder,

随着项目逐渐扩展,现有的枚举类型需要扩展字段。例如,有一个名为ECityArea的枚举类,用于存储与城市相关的通知,开始时只需要城市名称,然后需要状态通知、别名、图像位置和数据库别名等。因此枚举字段有点大,如以下代码:

ECityArea(String name, 
          String state, 
          String alias, 
          String imageLocation, 
          String imageFolder, 
          String imageAlias, 
          String dbAlias)
所有开发人员都会发现字段太多,以后可能会有更多的字段。可以预见,ECityArea本身将太大,难以阅读,那么应该有一些解决方案来解决这个难题

刚才,我有一个想法和大家分享

它将一些字段合并为另一个枚举类。例如:

ECityAreaImageRelated(String imageLocation, String imageFolder, String imageAlias)

ECityArea(String name, String state, ECityAreaImageRelated imageRelated, String dbAlias)

是否提供了其他解决方案?谢谢。

这不仅仅是针对枚举的,一般来说也适用于任何类。例如,如果您有一个名为Person的类,那么在这个类中可以有诸如他的姓名、年龄、性别等字段。但是像地址行1、地址行2、城市、国家等字段是不合适的。最好将字段分组到另一个名为Address的类中……这里的想法与well@user3493289我同意你的一部分观点,对于一般类,我们总是将一些相关字段分组到另一个名为helper的字段中,或者有时我们使用builder模式来解决这种情况。但对于枚举类型,我想我们可以更深入地思考枚举结构本身,并进行一些研究,使其与传统解决方案有所不同。这是问题的初衷。谢谢您的意见。@Ivan,您不想将数据库相关信息拆分为另一个枚举吗?它似乎不符合城市的领域模型。否则,是的,根据“单一责任原则”,这就是您想要的。@ChrisWohlert是的,拆分db相关通知也被添加到todo列表中,到目前为止,帮助类是使代码更好的唯一选择。