私はJavaプログラミングクラス用のテキストアドベンチャーゲームを書いています。abstract
各部屋が継承して構成する親部屋クラスを使用して部屋を設定しています。
出口の場合、ルームはメソッドを呼び出して.addExit()
出口オブジェクトを渡すだけです。ゲームには、すべての部屋のインスタンスを1つだけ含める必要があります。出口オブジェクトには、コンストラクターで初期化されるゲームの部屋の1つを指すターゲットフィールドが必要です。
私の問題は、出口コンストラクターに、新しい部屋オブジェクトではなく、既存の部屋参照を渡す方法がわからないことです。私の見方では、2つの方法が考えられます。
- 出口コンストラクターに部屋インスタンスへの参照を直接渡します。
- すべての部屋のインスタンスを追跡し、文字列名やクラスなどからインスタンスを返すメソッドを持つ静的クラスを用意します。
次に、出口オブジェクトのコンストラクターに、オブジェクトが一意の文字列名など、ターゲットの部屋を識別する方法が渡されます。次に、コンストラクターは、ルームインスタンスを返す静的クラスのメソッドの1つを呼び出すために使用します。
どちらが最良のオプションであるか、どちらのオプションを実装するか、または完全にもっと良い方法があるかどうかはわかりません。