私は多くの異なるシミュレーションを実行するコードを書いており、それぞれ独自のSimulation
オブジェクトにあります。 Simulation
から結果を抽出するには、まずSimulation
にReport
(Simulation
の子の1つ)のインスタンスを作成するように依頼する必要があります。シミュレーションのインスタンスごとに1つのレポートインスタンス:シングルトンを使用しますか?
Simulation
は、多くの場合Report
を含めることもできますが、作成プロセスは非常に高価なので、すでにその特定のSimulation
でReport
があれば、私はそれを再利用ではなく、新しいものを作成したいです。
Report
のインスタンスは、私のコードでは多くの異なるクラスからアクセスされます。私は最初にReport
が既にその特定のSimulation
に存在するかどうかをチェックし、それに基づいて既存のものを取得するか、新しいものを作成するコードを複製しないようにしたいと思います。 「シングルトン」のようなものを作る
:私は2つの道を見る種類のシングルトンのような...
-
私は本当に唯一
Report
Simulation
あたりの1つのインスタンスがあるようにしたいですReport
をSimulation
ごとに作成することができます。これは可能ですか?Simulation
を拡張SpecialSimulation
クラスを作り、そしてSpecialSimulation
ではReport
が含まれているシングルトンが含まれます。これは過剰ですか?
Simulation
とReport
は、私たちはのライセンスを持っている商業用のJava APIからです。ソースコードを変更することはできません。 ... JavaとOOPのロープを学ぶために
シングルトンの必要がない 'SpecialSimulation'のコンストラクタで' Report'を開始することができます – fge
SimulationとReportを変更することはできませんし、API docも持っていないので、答えるのは難しいです。しかし、Javaでオブジェクトを作成するのはコストがかかりません。私は、レポートを生成するのに費用がかかるのは、オブジェクトを作成するのではなく、適切な値で埋めていくことだと思います。レポートに新しい値を設定する必要があるたびに、同じインスタンスを再利用するか、新しいインスタンスを作成しても何も変更されません。 –