私は現在、単純なゲーム用のライブラリをプログラミングしています。ほとんどの場合、自分で使用することを意図しています。 問題に遭遇しました。イベントを購読せずに起動する
class Game
{
private List<Entity> entities;
private int counter;
public Game()
{
entities = new List<Entity>();
counter = 0;
}
public AddEntity(Entity entity_)
{
entities.Add(entity_);
// problem! how to inform entity_ that it was added?
counter++;
}
}
エンティティは、ゲーム内で動作する各オブジェクトから派生しなければならないクラスです。私はこのようになります「ゲーム」と呼ばれるクラスを持っています。その内容は本当に重要ではありません。私が探しているのは、Gameが、新たに追加されたentity_クラスに、その所有者(現在のゲームインスタンス)とそのID(「カウンタ」が何であるか)を通知する方法です。今は、 "OnAdd(Game owner_、int id_)"というメソッドを持つインターフェースを使うことを考えていますが、それは間違いなくうまくいくはずですが、それ以上の方法はないと確信していました。だから私の質問です:
私の問題は、より良い解決策は、インターフェイスよりもありますか? Entityのインスタンスは、それがどのゲームインスタンスに追加されているのかわからず、イベントのような目的のためのメソッドを使用することは私の目の中ではうまくいきません。もちろん私は間違っている可能性があります。
Clever。 +1のオブジェクト責任の "フリップ"。 – KeithS