すべての定数を1つのファイルに入れるのはひどい考えです!特に、すべての定数がInterface
にあるuber-Constantアンチパターンは、すべてのクラスがimplement
であることが必要です。日曜日にひどい10の方法!これは、人々がJavaの前に1990年代初めにそれをやり直すときに悪い考えでした! 2012年は間違いですね!
これは、このuber-Constantsファイルをインポートするたびに、関連性のない多くの情報が混ざり合っていて、必要のない依存関係を作成していることを意味します。一緒になるものは、Enum
または少なくともClass
にそれらのメソッドの引数として使用する必要があります。変更されたときに影響分析を簡単に行う方法を知っておく必要があります。
の定数は、他のビジネスドメイン定数と混合された定数で、DaysOfTheWeek
と混在しており、数千もの場合もありますが、数千ものファイルが1つのファイルにあります。これまでどのようにして良いアイデアと考えることができますか?すべての非考案の場合、public inner
のメンバーであるEnum
がClass
の方が良い解決策です。
これはまた、競合しない名前を作成して作成するための単一のフラットな名前空間を持っていることを意味しています。これは決して肯定的な運動ではありません。
いつもあなたをすべき設計とリファクタリング:
が高い凝集のために努力、これは可能な限り一緒に近くに関連するものを維持意味します。
努力するルーズカップリングこれは、関係のないものが他の関連しないスコープに漏れないようにすることを意味します。
保守可能なコードを自己文書化するために努力すると、数多くのprivate static final String/int
宣言がすべて一緒に混在しても、誰の標準でもこの定義に適合しません!
Enum
をツールとして使用すると、2012年のCスタイルの定数は役に立たないため、できるだけ多くの定数のグループをEnum
に変換することに焦点を当てる必要があります。 Enum
はタイプセーフで、他の属性やプロパティ、動作を添付してintelligent
にすることができます。それが下に行く道です。
単一の 'Constants'クラスは反パターンのように聞こえます。定数の意味に応じて分割するか、必要に応じて列挙型に置き換えます。 – millimoose
予防措置として、LOC * 0.01Vのようなもので衝撃を与える開発者の電極を、いつでもファイルを保存するためにフックします。 – millimoose
解決すべき具体的な問題は何ですか?ファイルが大きすぎるという事実だけ?それがあれば、すべてのリファクタリングのコストはそれに値するものではありません。 –