Паттерны проектировния vs архитектурные паттерны?

Добрый день.

Недавно у меня состоялась оживлённая дискуссия на тему есть ли разница между понятиями: паттерн проектирования и архитектурный паттерн.

Суть состояла в том, со слов оппонентов, что — MVC\MVP — архитектурный паттерн, но Singleton\Factory — паттерн проектирования.


Хотелось бы разобраться:

1. Есть ли разница между понятиями: архитектурный паттерн и паттерн проектирования?

2. Если разница между ними есть, в чём она заключается?

3. Примеры либо же список тех сущностей того что относится к паттернам проектирования и архитектурным паттернам.


Заранее спасибо. :)
  • Вопрос задан
  • 27849 просмотров
Пригласить эксперта
Ответы на вопрос 6
BurundukXP
@BurundukXP
Думаю, что вся разница в том, из какой книжки взят паттерн. В остальном разница вся на уровне понимания.

Паттерны проектироввания — книжка GoF «Design Patterns: Elements of Reusable Object-Oriented Software»
Архитектурные паттерны — книжка Мартина Фаулера «Patterns of Enterprise Application Architecture» (можно посмотреть список паттернов на сайте Мартина)

Еще хорошие книжки по теме — «Head First Design Patterns» и «Refactoring to Patterns»

Ссылки на эти же книги на русском
«Приемы объектно-ориентированного проектирования. Паттерны проектирования»
«Шаблоны корпоративных приложений»
«Паттерны проектирования»
«Рефакторинг с использованием шаблонов»
Ответ написан
Комментировать
AlexanderG
@AlexanderG
Мне думается, архитектурный паттерн это рекомендация по построению программы в целом, в то время как паттерн проектирования показывает, как решать конкретную специализированную задачу уже в пределах выбранной архитектуры. Архитектурный паттерн это более абстрактная вещь. Хотя по смыслу слов оба термина очень близки.
Ответ написан
Комментировать
@werdender
Архитектура — искусство проектировать, поэтому, имхо, разницы между этими понятиями нет.
Ответ написан
Комментировать
ixSci
@ixSci
Лично мое мнение, касательно упомянутых Вами паттернов, это всё паттерны проектирования.
Архитектурные паттерны это паттерны влияющие на архитектуру всей системы, к примеру клиент-серверная архитектура.

Также это посмотрите.
Ответ написан
@yeti
Ну например в реализации Cocoa для IOS, MVC это объединение пяти паттернов: Компоновщик, Команда, Медиатор, Стратегия и Наблюдатель.
Ответ написан
Комментировать
AxisPod
@AxisPod
Ну я бы сказал, что MVC — парадигма. Здесь нет строгих требований к реализации, а есть набор некоторых правил, которые позволяют вносить вольности. Тогда как шаблоны проектирования не дают вольностей.

А вообще шаблоны (как-то оно все же по русски так) проектирования и архитектурные шаблоны вещи совершенно разные.

citforum.ru/SE/project/pattern/ к примеру вот, а вообще если есть желание, нагуглить можно без проблем.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы