Архитектура программы (на C++) которая может работать (быть скомпилирована) как с GUI (Qt) так и без него, без потери работоспособности?

Как правильно написать программу (спроектировать) (на C++) которая сможет быть скомпилирована как с графическим интерфейсом (Qt) так и без него, без потери работоспособности? Хочется полностью отделить часть с библиотекой Qt. Приведите минимальный пример если возможно.


Ответы (1 шт):

Автор решения: Den

Сложно немного понять что вы имели ввиду. Если у приложения правильная архитектура то зачастую "бизнес-логику" отделяют от представления, его выделяют как ядро, но само по себе оно не будет работать. Сам графический интерфейс выступает в роли связующего звена между обычным пользователем и программой. Можно почитать например про паттерн MVC.

С другой стороны вы говорите о раздельном запуске, но раз вы хотите чтобы она работала то и подавать данные как-то надо, остается командная строка. Значит вы должны написать обработчик для работы с командной строкой.

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

→ Ссылка