Какие шаблоны проектирования программного обеспечения демонстрируют общие графические структуры? - PullRequest
6 голосов
/ 23 февраля 2012

Я работаю программистом на Python уже более 7 лет и занимаюсь проектированием с PyQt более 3 лет ... Но я не являюсь классически подготовленным специалистом по Comp Sci. основной. Совсем недавно я изучал Go и активно следил за дискуссионным списком Golang-Nuts , который заполнен чрезвычайно умными разработчиками. Из этой дискуссионной группы я видел много ссылок на шаблоны проектирования программного обеспечения, такие как Observer, Reactor и т. Д. Опять же, поскольку я не являюсь мажором CS, я никогда не изучал всю эту терминологию и теорию, но это заставило меня задуматься .. .

Какие шаблоны проектирования демонстрируют общие графические структуры, такие как Qt, wx, GTK?

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

Как второстепенный элемент в этом вопросе: существуют ли структуры графического интерфейса, которые пытаются использовать совершенно иной шаблонный подход к решению с графическим интерфейсом? Использует ли Cocoa / target-c те же шаблоны цикла событий, что и эти другие?

Обновление
Чтобы сузить фокус моего вопроса и основываясь на ответе @HDDimon, я в основном задаюсь вопросом о паттернах поведения (сообщение):
http://en.wikipedia.org/wiki/Design_Patterns#Behavioral_patterns

Ответы [ 2 ]

5 голосов
/ 15 мая 2012

Добрый день.Я думаю, что лучший ответ вы найдете в статье Мартина Фаулера GUI Architectures .

из этой статьи:

Model View Controller Вероятно,самый широкий цитируемый шаблон в разработке пользовательского интерфейса - Model View Controller (MVC) - он также является наиболее неверно процитированным.Я потерял счет раз, когда я видел что-то, описанное как MVC, которое оказалось совсем не таким.Честно говоря, во многом причина этого в том, что части классического MVC в действительности не имеют смысла для богатых клиентов в наши дни.Но на данный момент мы рассмотрим его происхождение.

В основе MVC , и идея, которая была наиболее влиятельной для более поздних структур ,это то, что я называю Отдельная презентация .Идея, лежащая в основе раздельного представления, заключается в том, чтобы четко разделить объекты предметной области, моделирующие наше восприятие реального мира, и объекты представления, являющиеся элементами графического интерфейса, которые мы видим на экране .Доменные объекты должны быть полностью автономными и работать без ссылки на презентацию, они также должны поддерживать несколько презентаций, возможно, одновременно.Этот подход также был важной частью культуры Unix и продолжает применяться сегодня, позволяя манипулировать многими приложениями как через графический интерфейс, так и через интерфейс командной строки.

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

из " Шаблоны проектирования: элементы многоразового объектно-ориентированного программного обеспечения " от "Банды четырех": Эрих Гамма, Ричард Хелм,Ральф Джонсон, Джон Влиссидес.(Я действительно хочу рекомендовать вам прочитать эту удивительную книгу)

  • Структурные шаблоны:
    • Адаптер
    • Мост
    • Композитный
    • Декоратор
    • Фасад
    • Лёгкий вес
    • Прокси

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

Я нашел реляционную диаграмму между паттернами из книги «Design Patterns», она может пригодиться для повседневного использования.

UPD: Отлично SO ответ добавлено.

0 голосов
/ 24 января 2017

Я считаю, что Google Material Design - идеальное руководство по графическому интерфейсу, включая ограничения и принципы проектирования в соответствии с общими шаблонами структуры.

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

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