Я ищу шаблоны, которые касаются кодирования частей GUI. Не такие глобальные, как MVC**, с которым я хорошо знаком, но паттерны, хорошие идеи и лучшие практики, касающиеся отдельных элементов управления и входов.
Допустим, я хочу сделать элемент управления, который отображает некоторые объекты, которые могут перекрываться. Теперь, если я нажму на объект, мне нужно узнать, что делать (просто найти объект я могу несколькими способами, такими как квадродерево и Z-порядок, но это не проблема). Кроме того, я могу удерживать клавишу-модификатор, или какой-то объект активен с самого начала, что делает выделение или что-либо еще немного сложнее. Должен ли у меня быть экземпляр объекта, представляющий экранный объект, обрабатывающий действие пользователя при нажатии, или мастер-класс и т.д.. Какие есть шаблоны или решения для подобных проблем?
Честно говоря, лучше просто изучить стандартные паттерны проектирования и применять их к отдельным проблемам, с которыми вы сталкиваетесь при разработке пользовательского интерфейса.
Хотя существуют общие "темы" пользовательского интерфейса (например, работа с клавишами-модификаторами), фактическая реализация может сильно отличаться.
У меня есть книги O'Reilly's Head First Design Patterns и The Poster, which I have found invaluable!
У объектно-ориентированного Дизайна и Образцов Каем Хорштманном есть названный " главы; Образцы и графический интерфейс пользователя Programming". в той главе Хорштманн затрагивает следующие образцы:
Я не думаю, что польза от паттернов проектирования заключается в попытке найти паттерн проектирования для решения проблемы. Однако вы можете использовать некоторые эвристики, чтобы помочь очистить ваш дизайн в этом довольно много, например, сохраняя UI как можно более развязанным от остальных объектов в вашей системе.
Существует паттерн, который может помочь в этом случае, - паттерн наблюдателя.
возможно, вы ищете что-то вроде 'MouseTrap', которую я видел в некоторых статьях на codeproject (поиск UI Platform)?
Я также нашел очень полезной эту серию статей http://codebetter.com/jeremymiller/2007/07/26/the-build-your-own-cab-series-table-of-contents/, где вы можете посмотреть на встроенные контроллеры и т.д.
Миша.
Я знаю, что Вы сказали не столь глобальный как MVC, но есть некоторые изменения на MVC - конкретно HMVC и PAC - который я думаю, может ответить на вопросы, такие как те, Вы позируете.
Кроме этого, попытайтесь написать новый кодекс " в spirit" из существующих образцов, даже если Вы don' t применяют их непосредственно.
Вы смотрите на профессиональное прикладное программирование. Я искал подсказки и обманываю долгое время без успеха. К сожалению, Вы ничто не найдете полезным, это - сложная тема, и только со многими годами опыта Вы будете в состоянии понять, как написать эффективно применение. Например, почти каждая программа открывает файл, информацию извлечений, шоу это в различных формах, позвольте обрабатывать, экономить... но никто не объясняет точно, что хорошая стратегия и так далее. Далее, если Вы пишете большое применение, Вы должны посмотреть на некоторые стратегии уменьшить Ваше время компиляции (иначе, Вы будете ждать часы при каждой компиляции). Идиомы Impls в C ++ помогают Вам, например. И затем есть намного больше. Поэтому разработчикам программного обеспечения хорошо платят и есть столько рабочих мест:-),