0

私は現在、巡回セールスマン問題を解決する遺伝的アルゴリズムを書いています。複数の場所で使用する「定数」がいくつかあります。ただし、これらの値は事前に計算する必要があるため、プライベートな静的最終変数に格納することはできません。したがって、Enum を使用することにしました。

public enum Constants {
    NODE_COUNT(0),
    SEQUENCE_LENGTH(0),
    POPULATION_SIZE(0),
    MAX_EDGE_WEIGHT(0),
    MUTATION_RATE(0);

    private int value;
    private boolean alreadySet = false;

    Constants(int value) {
        this.value = value;
    }

    public void setValue(int value) {
        if (!alreadySet) {
            this.value = value;
            this.alreadySet = true;
        } else {
            throw new AssertionError("Value is already set.");
        }
    }

    public int get() {
        return value;
    }
}

私の質問は、これは良いアプローチだと思いますか? これにより、列挙型を使用して各クラスの結束が低下するかどうかはわかりません。前もって感謝します。

4

2 に答える 2