我意识到(阅读过SO上的其他帖子),这是坏的设计(或更好地说,在我的情况下,它也没有意义)将状态添加到枚举常量。Java-Design:枚举状态?
然而我现在发现自己在一个情况下,我需要一些与此类似。 一个我写的应用程序使用的错误常数(ENUM),我使用的指示将它们添加到一个Map<Error, ErrorInfo>
(注意,这些都不是应用程序的错误,但是这是应用程序的一部分“错误”)错误,这些错误。 好吧 - 我现在意识到我实际上也需要指出INFO,WARN,FATAL的ErrorLevel。 由于错误的ErrorLevel取决于发生的上下文,因此我无法静态地将ErrorLevel分配给Error-enums,换句话说,Error.E1
可能是ErrorLevel.WARN
一次,但可能是ErrorLevel.FATAL
的另一次。
我在想我怎么才能最好在我的设计纳入本ErrorLevel
,但我已经想出了到现在为止,引入新的类,它只是包装一个Error
和ErrorLevel
和Map
内使用而不是Error
。
由于错误和严重性似乎我的东西,一定是相当普遍的,我相信有这样做更聪明的办法,所以我会非常感谢您对如何设计这个更好的想法。
--qu
难道你不能只是'ErrorErvel'添加到'ErrorInfo'?听起来像关卡是某种信息,不是吗? – hage 2012-02-28 07:33:20
@hage好吧,事实上,这个ErrorInfo就是发生错误的上下文。所以它包含错误发生时有效的状态信息。这就是为什么ErrorLevel在我看来不适合那里的原因.. – quaylar 2012-02-28 07:55:04