Как лучше всего разделить экземпляр объекта между несколькими классами в иерархии классов? У меня следующая ситуация:
class texture_manager;
class world {
...
std::vector<object> objects_;
skybox skybox_;
}
В настоящее время я реализовал texture_manager как синглтон, и клиенты вызывают его метод создания экземпляров из любого места в коде. texture_manager
должен использоваться объектами
в векторе objects_
, skybox_
, а также, возможно, другими классами, которые могут или не может быть частью мирового класса
.
Поскольку я пытаюсь ограничить использование синглтонов в моем коде, порекомендуете ли вы какие-либо альтернативы этому подходу? Одно из решений, которое пришло в голову, - передать ссылку texture_manager
в качестве аргумента конструкторам всех классов, которым требуется доступ к ней. Спасибо.