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

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

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

При написании шаблона следует также отметить, что код, который просто следует хорошим принципам и практикам проектирования, не должен рассматриваться как шаблон. Шаблон, помимо вышеупомянутых характеристик, также должен включать взаимодействие и набор определенных правил.

Естественный процесс формирования узора

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

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

Элементы узора

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

Постановка задачи

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

Заявление о решении

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

Контекст

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

Пример

Шаблоны должны предоставлять примеры своего дизайна и реализации. Пример должен охватывать широкое использование и должным образом описывать хороший принцип проектирования шаблона.

Общие рекомендации

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

  • Ориентирован на пользователя . Шаблон не должен изменять или принуждать к изменению поведения пользователя, который его адаптирует. Он должен охватывать то, что пользователь уже воспринимает и понимает.
  • Независимо от опыта. Шаблон должен быть прозрачным и благоприятным для пользователей с любым уровнем опыта.
  • Практичность. Шаблоны должны давать результат, описывая проверенное решение, а не предоставляя спекулятивное решение.
  • Передовой опыт и принципы . Дизайн должен основываться на принципах, основанных на передовом опыте.
  • Наглядные примеры . Шаблон должен демонстрировать широкий спектр примеров для поддержки различных вариантов использования. Он должен описывать передовой опыт и принципы, показывая использование шаблонов.
  • Открытие важнее творчества: определите более широкое применение существующих решений в дикой природе вместо того, чтобы создавать новые шаблоны.
  • Оригинальность — не ключевой момент. Хорошо не быть первооткрывателем шаблона, даже если шаблон имеет незначительное совпадение с существующим шаблоном, его можно принять на основе его широкого использования.
  • Шаблоны могут быть получены . Различные шаблоны можно комбинировать для создания нового шаблона. Конфигурация микширования должна быть тщательно определена создателем.

Вывод

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