ちょっと遊んでみると、コマンドラインで2人でターン制のバトルゲームを作ろうとしています。各プレイヤーは最大4つの異なる動きでモンスターをコントロールします。さまざまなモンスターと動きを定義するために、MonsterクラスとMoveクラスを定義しました。プレイヤーがムーブを使用する場合、使用するムーブでperformOn(Monster mon)メソッドのようなものを呼び出したいと思っています。その方法では、すべての移動が同じことを行うわけではないため、移動が行うことの実装を定義したいと思います。Javaがこれを実行できることはかなり確信していますが、それがどのように実行されるかは完全にはわかりません。MonsterクラスとMoveクラスの両方に、大きなコンストラクターメソッドを回避するための内部Builderクラスがあります。そして、誰かが移動を実行する方法についてより良いアイデアを持っているなら、遠慮なく共有してください。:)
ありがとう!
例:
// moves is a HashMap<String, Move>
monster1.moves.get("Firebreath").performOn(monster2); // damages monster2
monster2.moves.get("Heal").performOn(monster2); // heals monster2