2016-10-17 3 views
2

現在、既存のアプリケーションのHUGE Javaクラスを使用しています。 このクラスを初期化すると、プロパティファイルから多くの設定が読み込まれ、多数の変数が設定されます。すでに大きなクラスに多数の変数を追加する

他のダース程度のプロパティを追加のダース変数などで読み取る必要がある新しい機能が実装されています。

1つのオプションは、変数と関連するgetter/setter呼び出しを追加することです。

私が考えたもう1つの選択肢は、Innerクラスを実装し、そのコンストラクタに参照プロパティファイルを受け入れることでした。次に、参照を使用してすべての属性を設定できます。この内部クラスには、関連するgetter/setter呼び出しが格納されます。

混乱を最小限に抑えるため、このようなクラスを使用する場合の推奨方法は何ですか?

答えて

1

これは非常に意見の多い質問ですが、クラスを複数のクラスに分割しようとします。 1つのクラスが本当に必要な場合は、同じパッケージにいくつかの新しいクラスを作成し、それらの初期化を行い、 "main"クラスのコンストラクタからプロパティオブジェクトを渡します。その場合、構成値のすべてのゲッターを用意し、効果的にコンポジションファサードを作成します。

これは、次のようになります。

public class Configuration { 
    private DBConfiguration dbConfiguration; 

    public Configuration() { 
    Properties props = readPropertiesFile(); 
    dbConfiguration = new DBConfiguration(props); 
    } 

    public String getConnectionString() { 
    return dbConfiguration.getConnectionString(); 
    } 
} 

は、[更新]がクリーンなコードを有することに加えて、それはまた、あなたが正常@deprecateConfigurationクラスのメソッドと、ゆっくりと、より専門的な設定クラスに切り替えることができます 。

+0

私はこれが賛否両論の質問になるだろうと考えていました。あなたの回答が問題に集中することを期待しました。ありがとう。コードを通過した後、それが別のクラスに分割されるのは、クラスがクラスであるか内部クラスであるかにかかわらず、すでに混乱しているクラスに対してはよりクリーンな実装に見えます。これはまた、後で道路の下で、または別の人によって自分自身で解釈することを容易にするはずです。 –

関連する問題