Javaで書かれたシミュレーションを適応させています。私の限られたバックグラウンドはすべて C++ です。
シミュレーションの現在の実装は、 というクラスに依存していParameters
ます。クラスのインスタンスは のSimulation
属性を参照しますがParameters
、インスタンス化されることはないと思います。Parameters
クラスには次のような構造があります
public class Parameters {
public static int day = 0;
public static final int endDay = 365;
....
public static int getDate() {
return day;
}
}
のインスタンスにはSimulation
、たとえば への参照がありますParameters.day
。
現在、 のすべての属性Parameters
はハードコーディングされています。コマンドライン引数でそれらのいくつかを変更できるようにする必要があります。たとえば、ある種の関数endDay
を使用して別の設定ができるようにしたいと考えています。Parameters::setEndDay(int customDay)
私が最初に考えたのは、インスタンス ( Parameters parameters = new Parameters()
) を作成し、クラスを完全に書き直して、Parameters
そのすべての属性を非公開にし、アクセサー関数を介してのみアクセスできるようにすることでした。このアプローチはあまり効率的ではないことを懸念しています。Parameters
これまでのところ、クラスのインスタンスを作成し、それをSimulation
時々参照しながらのインスタンスに渡すというハイブリッド アプローチを試してきましたParameters.day
(これは変更する必要はありません)。
問題の 1 つは、私が Java のクラス特権についてよくわかっていないことです。
提案をいただければ幸いです。