Есть объект A который владеет объектом B (объявляется и инициализируется в конструкторе объекта A и является членом объекта A).
Разгорелся настоящий холивар по поводу того, как лучше обеспечить взаимодействие этих двух объектов.
Решения:
Первое решение предполагает создание у объекта A Qt-сигнала, а у объекта B публичного слота. И эти сигнал и слот коннектятся в конструкторе объекта A. И при наступлении определенного события объект A сообщает объекту B о наступлении этого события и объект B выполняет определенный алгоритм.
Второе решение предполагает создание у объекта B публичного метода и при наступлении события в методе объекта A вызывается публичный метод объекта B.
Так вот из-за этого разгорелся нешуточный холивар со влечением в него кучи народу.
Сугубо мое мнение, что это дело вкуса и предпочтения. Что обе реализации ничем не отличаются.
Хотел бы посмотреть, что скажет сообщество по этому поводу. Какие плюсы и минусы у каждой реализации?
Отличия есть.
Во первых, использование Qt подхода позволяет развязать два класса - они могут ничего не знать друг о дружке. Только порядок аргументов. Иногда это бывает удобно.
Qt подход позволяет легко отложить выполнение кода (Queued), отложить на какое то время (QTimer) или даже запустить в отдельном потоке.
Минус - завязываемся на Qt.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости