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