2

プログラムの設計について質問があります。これらの定数を別のクラスで使用できるように、パブリック定数を格納するクラス A があります。

public static final String error_code1 = "Fatal Error";
public static final String error_code2 = "XXXX";
...
...

コンポジションとインターフェイスの間で、どちらがより適しているかわかりません。私の考えでは、私のプログラムでは値を比較するための定数だけが必要なので、合成で十分だと思います(低結合)。

しかし、ソフトウェア設計の観点からのアドバイスや議論を教えてもらえますか? (結束、カップリング、メンテナンスの難しさなど)

4

4 に答える 4

3

まず、この場合は列挙型を使用することをお勧めします。

public enum ErrorCode {
    FATAL_ERROR("Fatal Error"),
    X_ERROR("XXXX");

    public final String msg;
    private ErrorCode(String msg) {
        this.msg = msg;
    }
}

これが何らかの理由であなたに合わない場合は、finalプライベート (未使用) コンストラクターを持つユーティリティ クラスを使用します。

とにかく、フィールドは静的で最終的なものであるため、定数を取得するために A への参照や A の実装を検討することはありません。

于 2014-11-21T13:17:44.663 に答える