Я провел последние 4 года на С#, поэтому меня интересуют современные передовые методы и общие шаблоны проектирования на С++. Рассмотрим следующий частичный пример:
class World
{
public:
void Add(Object *object);
void Remove(Object *object);
void Update();
}
class Fire : Object
{
public:
virtual void Update()
{
if(age > burnTime)
{
world.Remove(this);
delete this;
}
}
}
Здесь у нас есть мир, ответственный за управление набором объектов и их регулярное обновление. Огонь - это объект, который может быть добавлен в мир при самых разных обстоятельствах, но обычно другим объектом уже в мире. Огонь - единственный объект, который знает, когда он сгорел, поэтому в настоящее время я его удаляю. Объект, создавший огонь, скорее всего, больше не существует или имеет значение.
Это разумная вещь, чтобы сделать или есть лучший дизайн, который поможет очистить эти объекты?