Java枚举最佳实践

pec*_*cks 11 java enums

这可能看起来像一个微不足道的问题,但我对于枚举的想法有点混乱.

所以我有一个类 - 让我们说它叫做DVDPlayer - 我希望有一个枚举来表示它是ON,OFF还是STANDBY.

所以我可以将enum放在课堂上 - 它在课堂之外没有意义.我的问题是 - 如果枚举是公开的,那么其他类可以查询值,或者我应该将其设为私有,然后使用"isOn","isOFf"和"isStandby"方法?

后者听起来有些愚蠢,但我不确定将枚举作为公共场所也是一个好主意.

aio*_*obe 8

我想说将它公之于众似乎是一个好主意.主要原因是应用程序更容易扩展,因为每次添加状态时都不必考虑添加新方法.

如果您决定将其公开,则应考虑将其作为顶级枚举.我真的不明白为什么你说"它在课堂之外没有意义".我觉得DVDPlayerState听起来像一个完美的公共/顶级枚举.

  • 与此同时,它可能会.你可能有一个DvdPlayerRemoteControl,它对DvdPlayer可以拥有的状态非常感兴趣. (6认同)