logo
Учебное пособие по циклу лабораторных работ Технологии разработки программного обеспечения

Шаблоны проектирования

Опытные разработчики объектно-ориентированных систем сформулировали общие принципы и стандартные решения, помогающие в разработке программного обеспечения. Если эти принципы и идиомы систематизировать и структурировать, а также присвоить им имена, то их можно применять в качестве шаблонов (patterns).

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

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

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

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

Паттерн состоит из четырех основных элементов:

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

  1. Задача. Описывает то, где следует применять паттерн. Необходимо сформулировать задачу и ее контекст. Может описываться конкретная проблема проектирования, например способ представления алгоритмов в виде объектов. И

  2. Решение. Описание элементов дизайна, отношений между ними, функций каждого элемента.

  3. Результаты – это следствия применения паттерна и разного рода компромиссы.