enum ( Java )の設計方法
年間を通して、私はJavaで多くのenumsを見て、つくりました.いくつかは非常に有用だった、いくつかのハードコードといくつかの悪いもののビットを避けた.
これは非常に悪いenumデザインの例です.私は他の誰かを非難していません、私はこれに貢献者でした.しかし、私の防御で、私はその時初心者でした.見てみましょう.
その後、Javadocになる.彼らは何も説明していない.例えば、イベントが
このenumの他の全く迷惑なことはその命令です.イベントの状態を確認するためにデータベースを見るときは、
このコードで言及された問題に注意して、読みやすさとメンテナンスの容易さを改善します.
これ以上の提案はありますか.それを私と共有してください.
これは非常に悪いenumデザインの例です.私は他の誰かを非難していません、私はこれに貢献者でした.しかし、私の防御で、私はその時初心者でした.見てみましょう.
public enum EventStatusType {
/**
* event is processed {0 value in database}
*/
PROCESSED,
/**
* event is not processed {1 value in database}
*/
UNPROCESSED,
/**
* event is now running {2 value in database}
*/
IN_PROGRESS,
/**
* event has failed {3 value in database}
*/
FAILED
}
まず第一に、名前は何ですか?それはステータスかタイプのどちらかです、この場合、それは地位です、したがって、EventStatus
はより良い名前です.その後、Javadocになる.彼らは何も説明していない.例えば、イベントが
in progress
であることを意味する例を説明する代わりに、彼らは価値の繰り返しです.また、データベースの中で何を表現するかは全く役に立たず、冗長であり、さらに不適切です.ENUMを使って作業していて、データベースで自分の序列でそれらを保存しているので、彼らはどのように働くかを知っているべきです.我々の実体で使われるタイプをString
に変えるならば、我々はenumのためにjavadocを変えることを強制されてはいけません.このenumの他の全く迷惑なことはその命令です.イベントの状態を確認するためにデータベースを見るときは、
0
、1
、2
、3
のステータスを持つレコードがいくつかあります.あなたの直観は0
が基本値であると言います、そして、イベント状態は1
と2
(または3
)に動きます.そして、あなたは間違っている.基本値は1
で、2
に移動し、最終的なステータスは0
または3
です.非常に直感的.このコードで言及された問題に注意して、読みやすさとメンテナンスの容易さを改善します.
これ以上の提案はありますか.それを私と共有してください.
Reference
この問題について(enum ( Java )の設計方法), 我々は、より多くの情報をここで見つけました https://dev.to/amaralani/how-not-to-design-an-enum-java-3mknテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol