Здравствуйте. Делаю небольшую игру на С++ в которой есть карта, которая состоит из 50х50 ячеек, в итоге выходит 2500 объектов, но есть отличный шаблон для таких целей - Flyweight, который дает возможность создать для поля 50х50 не 2500 объектов, а напр. 5 объектов.
Приспособленец сохраняет уникальные объекты в коллекцию ключ-значение
std::map<int, Tile *> m_tiles;
Саму реализацию проводить не буду, она типичная.
После отрисовки самой карты все хорошо, но если нужно изменить хотя бы один объект, аналогичные объекты по типу, меняются тоже, оно и понятно (все аналогичные объекты имеют одинаковый адрес). А есть какая-то альтернатива для решения этой проблемы, чтобы создавалось напр. не 2500 объектов, а поменьше, но с разными адресами, чтобы после изменения одного, не изменялись остальные?