gpt4 book ai didi

java - 枚举中的逻辑

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:09:56 25 4
gpt4 key购买 nike

我和我的同事正在讨论枚举中的逻辑。我个人的偏好是在 Java 枚举中有任何逻辑(尽管 Java 提供了这样做的能力)。这种情况下的讨论集中在枚举中有一个返回映射的便捷方法:

public enum PackageType {
Letter("01", "Letter"),
..
..
Tube("02", "Packaging Tube");

private String packageCode;
private String packageDescription;

..
..

public static Map<String, String> toMap() {
Map<String, String> map = new LinkedHashMap<String, String>();
for(PackageType packageType : PackageType.values()) {
map.put(packageType.getPackageCode(), packageType.getPackageDescription());
}
return map;
}
}

我个人的偏好是将其提取到服务中。将方法放在枚举中的论点以方便为中心。这个想法是您不必去服务获取它,而是可以直接查询枚举。

我的论点围绕关注点分离和将任何类型的逻辑抽象为服务。我不认为“方便”是将此方法放在枚举中的有力论据。

从最佳实践的角度来看,哪个更好?还是仅仅是个人喜好和代码风格的问题?

最佳答案

好吧,我以前做过这个,但这当然并不意味着这是“最好”的事情。

不过,从我的角度来看,我更愿意在枚举中包含该逻辑,出于同样的原因,您不会将“toString”方法移出到服务中。逻辑只涉及枚举本身,以及它自己的表示。

我认为将这样的方法移出到服务中会产生误导 - 通过将其放在枚举上,您可以预先了解枚举具有“toMap”方法这一事实。不了解该服务而只是查看枚举的人可能不知道。

它还有助于在 IDE 中自动完成 - 我可以点击“.”键并立即查看对象提供的方法。

关于java - 枚举中的逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2474195/

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