Знаете ли вы какие-либо шаблоны для программирования с графическим интерфейсом? (Не шаблоны при разработке графических интерфейсов)

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

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


person Peteter    schedule 14.08.2008    source источник


Ответы (6)


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

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

У меня есть , который я считаю бесценным!

Shameless Plug: Эти ссылки используют идентификатор моего партнера.

person Rob Cooper    schedule 14.08.2008
comment
У меня также есть шаблоны дизайна Head First. Я нашел, что это действительно хорошо, чтобы узнать основные шаблоны в забавной форме. - person FrenchData; 26.11.2009
comment
HFDP теперь в моем списке желаний Amazon... когда я закончу книгу Джона Скита «Что мне нужно для освоения C#» ;) - person IAbstract; 07.02.2010
comment
Что касается вашего бесстыдного плагина: нет, это не так :) StackOverflow заменил ваш реферальный идентификатор на свой. - person Marek; 04.11.2010
comment
^^ Весь ваш контент принадлежит нам - person learnvst; 18.06.2013

В книге «Объектно-ориентированный дизайн и шаблоны» Кэя Хорстманна есть глава, озаглавленная «Шаблоны и программирование с графическим интерфейсом». В этой главе Хорстманн затрагивает следующие закономерности:

  • Менеджеры компоновки Observer и
  • Компоненты шаблона стратегии,
  • Контейнеры и составной шаблон
  • Полосы прокрутки и шаблон декоратора
person DTS    schedule 08.06.2010

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

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

person Antonio Haley    schedule 14.08.2008

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

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

person Draemon    schedule 26.11.2008

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

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

Миша.

person Micha    schedule 21.10.2008

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

person ISTB    schedule 06.08.2012