Шаблоны проектирования, называемые также паттернами проектирования (англ. design pattern), – это один из важнейших компонентов объектно-ориентированной технологии разработки программного обеспечения [1, 2]. Всякий шаблон проектирования, используемый при разработке информационных систем, представляет собой формализованное описание часто встречающейся задачи проектирования, удачное её решение и рекомендации по применению данного решения в различных ситуациях [3].
Имеется ряд важных причин, по которым следует изучать шаблоны проектирования. Очевидно, что повторное использование удачных решений из уже завершенных проектов дает возможность быстро приступить к решению новых задач и избежать допущенных ранее ошибок. При этом сложность разработки снижается за счет готовых архитектурных решений, а уникальные наименования шаблонов позволяют улучшить коммуникацию в команде разработчиков. Кроме того, согласно [2], одна из важнейших причин, по которой следует изучать шаблоны, заключается в следующем: «шаблоны проектирования предоставляют нам абстрактный высокоуровневый взгляд как на проблему, так и на весь процесс объектно-ориентированной разработки. Это помогает избежать излишней детализации на ранних стадиях проектирования».
Направление, связанное с применением шаблонов проектирования, в настоящее время интенсивно развивается, однако имеется совсем немного учебных пособий доступных для первоначального изучения предмета. Это обстоятельство определяет актуальность разработки сбалансированного по сложности и доступности учебного пособия по шаблонам проектирования. Для решения этой задачи на кафедре программного обеспечения и администрирования информационных систем Воронежского государственного университета было подготовлено учебное пособие «Шаблоны проектирования» [4]. Пособие состоит из пяти разделов. В первом разделе подробно рассматриваются так называемые порождающие шаблоны (Factory method, Abstract factory, Singleton). Во втором разделе обсуждаются структурные шаблоны, в том числе шаблоны Adapter, Facade, Proxy и Composite. В разделе 3 изучается Iterator – важный пример поведенческого шаблона. В разделе 4 рассматривается «инверсия управления» – принцип объектно-ориентированного программирования, используемый для уменьшения связности в компьютерных программах. Пятый раздел посвящен одной методике создания слабосвязанных приложений, называемой Dependency Injection. Для читателей, интересующихся применением шаблонов проектирования, данное пособие может послужить введением в материал предмета. Для дальнейшего изучения можно обратиться к [1–3] и цитируемой в этих работах литературе.