我意識到(閱讀過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