Разработка нескольких пользовательских интерфейсов для приложения - PullRequest
2 голосов
/ 06 июня 2010

Я хочу разработать приложение с графическим интерфейсом пользователя, который можно разрабатывать с использованием различных наборов инструментов виджетов. Например, я хочу использовать Qt, GTK + или даже ncurses как строительный блок для моего пользовательского интерфейса для того же приложения. Кроме того, пользователи могут выбирать, какая реализация графического интерфейса будет использоваться при следующем запуске приложения, без перекомпиляции. Интересно, какие возможные стратегии проектирования и шаблоны проектирования используются при реализации этого дизайна?

Ответы [ 2 ]

3 голосов
/ 06 июня 2010

Классический шаблон проектирования для нескольких графических интерфейсов: MVC .

У вас есть одна модель (данные и правила приложения), контроллеры (по одному на представление) - они управляют взаимодействиями пользовательского интерфейса и обеспечиваютмежду пользовательским интерфейсом (представлениями) и моделью.

С контроллерами можно разговаривать разными представлениями - одним представлением может быть Qt, другое GTK + или даже консольное приложение.

1 голос
/ 06 июня 2010

Зачем вам это нужно?

Каждый инструментарий имеет свои сильные и слабые стороны. Если вы хотите разработать что-то, что будет работать с ними всеми, вы будете ограничены совокупной суммой всех слабостей и не получите ни одного из сильных сторон. Например, если вы используете Qt, вы не сможете использовать сигналы и слоты QT. это сделает написание GUI и взаимодействие с ним довольно болезненным. В основном вам нужно написать целый слой-обертку вокруг чего-то, что уже является слоем-оберткой (для нативных API)

Я не вижу никакой возможной причины, по которой пользователь мог бы выбирать между Qt, GTK + или ncourses. просто выберите одну вещь и придерживайтесь ее.

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