@iihaarr

Как лучше организовать архитектуру классов?

Есть класс Container, в котором содержатся классы A-D и Storage. A-D используют storage(кладут или получают данные). Вопрос: как организовать взаимодействие между A-D и Storage? Первое что на ум пришло - передавать в A-D указатель на storage. Насколько это правильно с точки зрения архитектуры?
  • Вопрос задан
  • 158 просмотров
Решения вопроса 1
@dima20155
you don't choose c++. It chooses you
Указатель/ссылка это вполне ок использовать, но зачастую лучше реализовать взаимодействие через класс-интерфейс.
Например, вы можете захотеть использовать разную реализацию для однопоточности и многопоточности. В таком случае крайне удобно будет иметь интерфейс. Возвращаясь к ссылке/указателю на класс: это может быть тоже приемлемо, но нужно понимать что вы будете делать с Storage, кто будет им владеть и т.д.

Также можно реализовать взаимодействие через callback функции (что по сути упрощённый вариант интерфейсного класса).
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
vabka
@vabka
Токсичный шарпист
С точки зрения архитектуры это нормально.
Но чтобы ответить, правильно ли это вообще - нужно больше данных.
Ответ написан
Комментировать
Maksclub
@Maksclub
maksfedorov.ru
Насколько это правильно с точки зрения архитектуры?

Если вы уже используете Container, то вы уже понимаете суть DI контейнера или близки

В контейнерах не хранится ссылка, а хранится просто инстанс объекта, если не указано, что для сервиса зависимость должна быть новой (новым инстансом) и просто инжектите этот объект
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы