Одна программа и несколько GUI к ней, как это работает?

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Одна программа и несколько GUI к ней, как это работает?

Сообщение xterro » 13.02.2018 13:56:08

Приветствую, любопытства и расширения гругозора для, подскажите, как реализуется например, консольная программа и несколько гуёв к ней. В том же Линуксе много примеров таких программ, когда есть консольная "утилитка" и несколько разных гуёв к ней, например тот же spice симулятор или торрент-трекер transmission. Как они взаимодействуют друг с другом, какими способами, через что? Как это реализуется на уровне архитектуры приложения/классов/кода?
xterro
постоялец
 
Сообщения: 133
Зарегистрирован: 23.02.2014 13:49:33

Re: Одна программа и несколько GUI к ней, как это работает?

Сообщение Ichthyander » 13.02.2018 15:57:22

По-моему все просто, если конечно я правильно понял вопрос. Отделение функционала от интерфейса. Да даже само использование классов, реализующих какой либо функционалов позволяет потом сделать различные интерфейсы: web, gui, консоль и другие. Достаточно перенести классы, реализующие нужный функционал в отдельные модули и потом использовать. Приложения будут отличаться только интерфейсом. На практике можно даже вынести функционал в отдельную библиотеку (dll, so), если слишком тяжелый код получается....
Аватара пользователя
Ichthyander
постоялец
 
Сообщения: 335
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Re: Одна программа и несколько GUI к ней, как это работает?

Сообщение wofs » 13.02.2018 18:32:29

xterro писал(а):В том же Линуксе много примеров таких программ, когда есть консольная "утилитка" и несколько разных гуёв к ней, например тот же spice симулятор или торрент-трекер transmission.

В данном случае GUI просто рулит консольной утилитой и парсит ее вывод, предоставляя вам результат. Отчасти поэтому зачастую проще сразу запустить консоль и за пару секунд набрать комманду с параметром, чем запускать GUI, тыкать там мышкой...
Аватара пользователя
wofs
постоялец
 
Сообщения: 259
Зарегистрирован: 05.10.2009 10:16:55
Откуда: Астрахань

Re: Одна программа и несколько GUI к ней, как это работает?

Сообщение xterro » 14.02.2018 09:31:35

Понятно, спасибо :)
xterro
постоялец
 
Сообщения: 133
Зарегистрирован: 23.02.2014 13:49:33

Re: Одна программа и несколько GUI к ней, как это работает?

Сообщение bormant » 14.02.2018 14:15:15

... но обычно поступают иначе.
Общую функциональность выносят в библиотеку.
Библиотеку дергают из консольного или графического приложения.
Наглядный пример: libparted, parted, gparted.
Аватара пользователя
bormant
постоялец
 
Сообщения: 380
Зарегистрирован: 21.03.2012 11:26:01

Re: Одна программа и несколько GUI к ней, как это работает?

Сообщение Mirage » 16.02.2018 00:22:27

Общее решение - у ядра, т.е. той части, которая что-то полезное делает, есть API. А морды это API используют.
Что это за API это уже вопрос конкретной реализации. Это должно быть что-то межпроцессное, чтобы могли использовать другие процессы.
Например, сейчас модно REST API. Тогда можно и десктопный и мобильный и веб клиент легко сделать. В т.ч. управление по сети с другого устройства.
Или бинарный сетевой API.
Если делать дин. библиотеку, то это только для чего-то, что требует большой пропускной способности, а обычно гимора много, а толку мало.
Общение через консоль тоже так себе вариант, особенно если предполагается человекочитаемый формат, как у того же GDB.
В принципе, любой способ IPC подойдет.
Mirage
энтузиаст
 
Сообщения: 763
Зарегистрирован: 06.05.2005 20:29:07
Откуда: Russia


Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: Google Adsense [Bot] и гости: 3

Рейтинг@Mail.ru