В настоящее время я программирую библиотеку для простых игр, в основном предназначенную для использования мной.Теперь я столкнулся с проблемой.У меня есть класс под названием «Game», который выглядит следующим образом:
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++;
}
}
Entity - это класс, из которого должен быть получен каждый объект, который действует в игре.Его содержание не имеет большого значения.То, что я ищу, - это способ, которым Game информирует вновь добавленный класс entity_ о своем владельце (текущем экземпляре Game) и его идентификаторе (для чего и используется «counter»).Теперь я думал об использовании интерфейса, у которого был бы метод «OnAdd (Game owner_, int id_)» для этого, поскольку это определенно сработало бы, но я хотел убедиться, что нет предпочтительного способа преодоления этого.Вот мой вопрос:
Есть ли лучшее решение для моей проблемы, чем интерфейсы?Экземпляр Entity не знает, к какому экземпляру Game он добавляется, и использование методов для целей, подобных событиям, мне не подходит.Я могу ошибаться, если конечно.