Как реализовать систему классов иерархии - PullRequest
0 голосов
/ 12 ноября 2018

Я немного новичок в C ++, чтобы справиться с этой ситуацией, поэтому вместо того, чтобы сразу использовать шаблон синглтона, я решил вместо этого задать этот вопрос, чтобы посмотреть, есть ли лучшая альтернатива.

Есть ли другой способ реализовать систему, где у нас есть основной класс, у которого есть доступ к ряду классов, которые являются друзьями между собой? Я не нашел другого способа заставить это работать: наследование не будет работать из-за того факта, что классы работают совершенно по-другому, и использование классов-членов не является опцией, потому что тогда я создам другой экземпляр тот же класс, и это не вариант, потому что я получил неатомарный класс, такой как logger, и его должен быть только один экземпляр.

Вот о чем я думаю:

enter image description here

1 Ответ

0 голосов
/ 12 ноября 2018

Очень коротко:

  • ДА возможно иметь много классов, которые дружат друг с другом, как вы показали на своей диаграмме,

  • НЕТ , делать это не рекомендуется, поскольку у вас будет сильно связанная система, и каждый раз, когда вы что-то меняете в одном классе, это может повлиять на вседругие.

Шаблоны проектирования, такие как шаблон синглтона , и другие методы, такие как внедрение зависимостей , призваны помочь избежать таких ситуаций и уменьшить муфта для облегчения технического обслуживания и обеспечения более надежной системы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...