Сведения о вопросе

GANGST1ER

23:42, 7th August, 2020

Теги

Вы знаете какие-нибудь шаблоны для программирования GUI? (Не паттерны на проектирование GUIs)

Просмотров: 598   Ответов: 6

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

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



  Сведения об ответе

PROGA

07:59, 24th August, 2020

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

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


  Сведения об ответе

JUST___

04:51, 15th August, 2020

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

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

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

Бесстыдная вилка : эти ссылки используют мои партнеры ID.


  Сведения об ответе

DAAA

07:57, 25th August, 2020

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

Существует паттерн, который может помочь в этом случае, паттерн наблюдателя .


  Сведения об ответе

PIRLO

21:06, 1st October, 2020

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


  Сведения об ответе

VERSUION

03:21, 11th August, 2020

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

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


  Сведения об ответе

+-*/

00:22, 4th August, 2020

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

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

Миша.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться