Знаете ли вы какие-либо шаблоны для программирования GUI? (Не шаблоны для проектирования графических интерфейсов) - PullRequest
6 голосов
/ 14 августа 2008

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

Допустим, я хочу создать элемент управления, отображающий некоторые объекты, которые могут перекрываться. Теперь, если я нажимаю на объект, мне нужно выяснить, что делать (просто найти объект, который я могу сделать несколькими способами, например, квад-дерево и Z-порядок, - это не проблема). А также я мог бы удерживать клавишу-модификатор, или какой-то объект активен с самого начала, делая выбор или что-то более сложным. Если у меня есть экземпляр объекта, представляющий экранный объект, обработайте пользовательское действие при нажатии или мастер-класс. и т.д .. Какие существуют модели или решения для подобных проблем?

Ответы [ 6 ]

5 голосов
/ 08 июня 2010

Объектно-ориентированный дизайн и шаблоны Cay Horstmann имеют главу под названием «Шаблоны и программирование GUI» В этой главе Хорстманн затрагивает следующие модели:

  • Менеджеры по расположению наблюдателей и
  • Компоненты шаблонов стратегии,
  • Контейнеры и составной шаблон
  • Полосы прокрутки и шаблон декоратора
5 голосов
/ 14 августа 2008

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

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

У меня есть Образцы дизайна головы О'Рейли и Плакат , который я нашел бесценным!

Бесстыдный плагин: эти ссылки используют мой личный идентификатор.

1 голос
/ 06 августа 2012

Вы смотрите на профессиональное программирование приложений. Я долго искал советы и хитрости, но безуспешно. К сожалению, вы не найдете ничего полезного, это сложная тема, и только с многолетним опытом вы сможете понять, как эффективно написать приложение. Например, почти каждая программа открывает файл, извлекает информацию, показывает ее в разных формах, разрешает обработку, сохранение, ... но никто точно не объясняет, что такое хорошая стратегия и так далее. Кроме того, если вы пишете большое приложение, вам нужно рассмотреть некоторые стратегии, чтобы сократить время компиляции (иначе вы будете ждать часы при каждой компиляции). Impls идиомы в C ++ помогут вам, например. А потом еще много чего. По этой причине разработчикам программного обеспечения хорошо платят и есть так много рабочих мест: -)

1 голос
/ 26 ноября 2008

Я знаю, что вы сказали, что не так глобально, как MVC, но есть некоторые вариации MVC - в частности, HMVC и PAC - которые, я думаю, могут ответить на вопросы, такие как те, которые вы задаете.

Кроме этого, попробуйте написать новый код "в духе" существующих шаблонов, даже если вы не применяете их напрямую.

1 голос
/ 21 октября 2008

возможно, вы ищете что-то вроде MouseTrap, которое я видел в некоторых статьях по codeproject (поиск по UI Platform)?

Я также нашел эту серию очень полезной http://codebetter.com/jeremymiller/2007/07/26/the-build-your-own-cab-series-table-of-contents/, где вы могли бы взглянуть на встроенные контроллеры и т. Д.

Миха.

1 голос
/ 14 августа 2008

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

В этом случае может помочь шаблон Шаблон наблюдателя .

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