Шаблон дизайна - Design pattern

Шаблон проектирования является Многоразовой формой решения задачи проектирования. Идея была предложена архитектором Кристофером Александром и была адаптирована для различных других дисциплин, в частности для разработки программного обеспечения .

Подробности

Организованный набор шаблонов проектирования, относящихся к определенной области, называется языком шаблонов . Этот язык дает общую терминологию для обсуждения ситуаций, с которыми сталкиваются дизайнеры.

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

-  Кристофер Александр, Язык шаблонов

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

Документация по шаблону также должна объяснять, когда это применимо. Поскольку два дома могут сильно отличаться друг от друга, шаблон проектирования домов должен быть достаточно широким, чтобы применяться к ним обоим, но не настолько расплывчатым, чтобы не помогать дизайнеру принимать решения. Диапазон ситуаций, в которых можно использовать шаблон, называется его контекстом. Некоторыми примерами могут быть «все дома», «все двухэтажные дома» или «все места, где люди проводят время».

Например, в работе Кристофера Александра автобусные остановки и залы ожидания в хирургическом центре находятся в контексте паттерна «МЕСТО, КОТОРЫЙ МОЖНО ЖДАТЬ».

Примеры

Бизнес-модели также имеют шаблоны проектирования. См. Бизнес-модель § Примеры .

Смотрите также

Рекомендации

дальнейшее чтение

  • Эрл, Томас (2009). Шаблоны проектирования SOA . Серия сервисно-ориентированных вычислений Prentice Hall от Томаса Эрла. Река Аппер Сэдл, штат Нью-Джерси: Prentice Hall . ISBN 978-0-13-613516-6. OCLC  156832597 .
  • Лейтнер, Гельмут (2015). Теория паттернов: введение и перспективы по следам Кристофера Александра . Серия исследований паттернов. 1 . Грац: Хельмут Лейтнер, HLS Software. ISBN 978-1-5056-3743-4. OCLC  913795677 .
  • При, Вольфганг (1995). Шаблоны проектирования для объектно-ориентированной разработки программного обеспечения . Книги ACM Press. Уокингем, Англия; Ридинг, Массачусетс: Эддисон-Уэсли . ISBN 0201422948. OCLC  31291883 .
  • Schmidt, Douglas C .; Бушманн, Франк ; Хенни, Кевлин (2007). Шаблонно-ориентированная архитектура программного обеспечения: шаблоны и языки шаблонов . Серия Wiley в шаблонах проектирования программного обеспечения. 5 . Чичестер, Великобритания; Нью-Йорк: Вили . ISBN 9780471486480. OCLC  62532759 .
  • Тидуэлл, Дженифер; Брюэр, Чарльз; Валенсия, Эйнн (2020) [2005]. Разработка интерфейсов: шаблоны для эффективного интерактивного дизайна (3-е изд.). Севастополь, Калифорния: О'Рейли . ISBN 9781492051961. OCLC  1138701080 . Представляет решения общих проблем проектирования пользовательского интерфейса в виде набора шаблонов, каждый из которых содержит конкретные примеры, рекомендации и предупреждения.