Я был программистом на Python 7+ лет и проектировал с PyQt еще 3 года ... Но я не классический Comp Sci. главный. Совсем недавно я изучал Go и активно следил за Golang-nuts discussion list, который заполнен чрезвычайно умными разработчиками. Из этой дискуссионной группы я видел много ссылок на шаблоны разработки программного обеспечения, такие как Observer, Reactor и т. Д. Опять же, поскольку я не являюсь CS, я никогда не изучал всю эту терминологию и теорию, но это заставило меня задуматься. .Какие шаблоны проектирования программного обеспечения имеют общие рамки графического интерфейса?
Какие шаблоны дизайна имеют общие графические интерфейсы, такие как Qt, wx, GTK?
У меня такое чувство, что оно представляет собой смесь шаблонов для разных компонентов, таких как контур события против сигналов/слотов или привязка против наблюдения за знаками ключа и т. Д. Я хотел бы услышать объяснение или обобщение того, как эти программные шаблоны сопоставляются с традиционными компонентами этих фреймворков.
В качестве второстепенного элемента к этому вопросу: существуют ли интерфейсы графического интерфейса, которые пытаются использовать совершенно другой подход к графическому интерфейсу? Использует ли Cocoa/object-c те же шаблоны цикла событий, что и другие?
Update
Чтобы сузить фокус моего вопроса, и на основе ответа по @HDDimon, я в основном интересно о модели поведения (коммуникации):
http://en.wikipedia.org/wiki/Design_Patterns#Behavioral_patterns
Большое спасибо за эту информацию. Я очень хорошо знаком с MVC, так как он довольно распространен и для других фреймворков. Я обязательно проверю ваши рекомендации. Но я также надеялся, что кто-то сосредоточит их ответ более конкретно на популярных графических интерфейсах и их методах общения. Цикл событий, интервалы сигналов, kvo, передача сообщений/событий и т. Д. Я, очевидно, мог прочитать книгу об общих шаблонах проектирования, но мне хотелось услышать прямые и конкретные примеры для этих графических интерфейсов. Дополнительная информация? – jdi