Введение

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

Подробности

Организованный набор шаблонов проектирования, относящихся к определенной области, называется языком шаблонов. Этот язык предоставляет общую терминологию для обсуждения ситуаций, с которыми сталкиваются проектировщики. Элементы этого языка – это сущности, называемые шаблонами. Каждый шаблон описывает проблему, которая возникает снова и снова в нашей среде, а затем описывает суть решения этой проблемы таким образом, что это решение можно использовать миллион раз, каждый раз находя уникальное применение. Кристофер Александр описывает распространенные проблемы проектирования как возникающие из «конфликтующих сил», таких как конфликт между желанием, чтобы комната была солнечной, и нежеланием, чтобы она перегревалась летними днями. Шаблон не предписывает проектировщику, сколько окон установить в комнате; вместо этого он предлагает набор ценностей, чтобы направить проектировщика к решению, которое наилучшим образом подходит для конкретной задачи. Например, Александр предлагает установить достаточно окон, чтобы свет равномерно распределялся по комнате. Он считает это хорошим решением, поскольку полагает, что это повышает комфорт пребывания в комнате для ее обитателей. Другие авторы могут прийти к иным выводам, если они придают большее значение затратам на отопление или стоимости материалов. Эти ценности, используемые автором шаблона для определения «лучшего» решения, также должны быть задокументированы в шаблоне. Документация шаблона также должна объяснять, когда он применим. Поскольку два дома могут сильно отличаться друг от друга, шаблон проектирования для домов должен быть достаточно широким, чтобы применяться к обоим, но не настолько расплывчатым, чтобы не помогать проектировщику принимать решения. Область ситуаций, в которых шаблон может быть использован, называется его контекстом. Примеры контекста могут быть: «все дома», «все двухэтажные дома» или «все места, где люди проводят время». Например, в работах Кристофера Александра автобусные остановки и комнаты ожидания в медицинском центре входят в контекст шаблона «МЕСТО ДЛЯ ОЖИДАНИЯ».