Архитектура графического интерфейса простого рабочего стола - PullRequest
2 голосов
/ 14 апреля 2011

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

Например: диалоговое окно настроек / параметров, которое изменяет поведение главного окна.

Было бы хорошей идеей сделать мой "Main" (например, когда должен быть только один экземпляр окна одновременно видимым)? Так как в любом случае должен быть только один?

Это облегчит и очистит взаимодействие отдельных окон.

Если вышеупомянутое верно, тогда я мог бы добавить Facade-подобные методы для чистого интерфейса к другим окнам.

Например: MainWindow.setFont (Font f);

Спасибо за любой вклад.

Ответы [ 2 ]

3 голосов
/ 14 апреля 2011

Хорошая статья по теме - GUI Architectures от Мартина Фаулера, которая охватывает различные шаблоны проектирования. Например, шаблон Observer Synchronization может работать для вас в контексте упомянутой статьи.

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

0 голосов
/ 14 апреля 2011

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

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