2008-09-24 2 views
2

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

Однако в наши дни я нахожу книгу, такую ​​как «Шаблоны архитектуры корпоративных приложений» (POEA) Мартина Фаулера, гораздо полезнее в повседневной работе.

В обсуждениях с другими разработчиками многие делают (справедливым) то, что фреймворки, такие как .NET, постепенно начинают предоставлять многие шаблоны в книге GOF, и почему зачем изобретать колесо?

Кажется, многие разработчики считают, что книга GOF является единственной ссылкой, которая стоит иметь на дизайне. Поэтому их логика заключается в том, что, поскольку фреймворки (.NET и т. Д.) Предоставляют много шаблонов GOF для нас, шаблоны видели свой день и уже не так важны.

Удивительно (по крайней мере, мне), когда я упоминаю узоры, описанные в POEA, меня часто встречают пустые взгляды.

POEA доказывает, что шаблоны больше, чем просто Interators, Singletons, Commands и т. Д. Я бы также сказал, что шаблоны в GOF - это действительно просто «категория» шаблонов, применимых к другому (неперекрывающемуся) уровню дизайн, чем в POEA.

Итак, какие другие «категории» шаблонов применяются в вашем развитии? К какому уровню дизайна относятся эти шаблоны? В какой момент в процессе разработки они обычно используются? Есть ли книга или ссылка на эти шаблоны?

+0

Распространенное Abbrev для корпоративных моделей книга I Фаулера s PEAA – jop 2008-09-24 06:13:26

ответ

6

CategoryPatterns на Ward's wiki содержит категоризованный список шаблонов.

Первые три являются моделями GoF

  • Порождающих
  • Структурных
  • Поведенческих

Тогда есть проблема специфические проблемы

  • безопасность
  • Параллелизм
  • RealTime

модель Фаулера являются предприятия Шаблоны приложений. Есть также Enterprise Integration Patterns. UI шаблоны также существуют .. и так далее ...

0

Образцы GoF также строго применимы только к коду. Образцы Фаулера предназначены не только для кода, но и для того, как компоноваться и взаимосвязаны данные и компоненты системы.

Кроме того, некоторые шаблоны не нужны, если они уже испечены на языке программирования. На некоторых языках это просто идиомы. Один из них фактически сделал аргумент, что шаблоны проектирования являются признаками недостатка языка программирования.

2

Я просто добавляю ответ, так как у меня был задан этот вопрос несколько иначе.Согласно ЗОПБ (Узор-ориентированная программная архитектура серии книг), есть три уровня моделей:

  • Архитектурные шаблоны (например Layers, MVC, P2P)
  • Design Patterns (например GoF моделей)
  • идиомы (например, специфичные для языка структуры, как Pimpl, RAII в C++)
Смежные вопросы