SlideShare a Scribd company logo
1 of 13
В разработке программного
обеспечения — повторимая архитектурная
конструкция, представляющая собой решение
проблемы проектирования в рамках некоторого
часто возникающего контекста.
Обычно шаблон не является законченным
образцом, который может быть прямо
преобразован в код; это лишь пример решения
задачи, который можно использовать в
различных ситуациях.
Объектно-ориентированные шаблоны
показывают отношения и взаимодействия ме
жду классами или объектами, без определения
того, какие конечные классы или объекты
приложения будут использоваться.
«Низкоуровневые» шаблоны, учитывающие
специфику конкретного языка программирования,
называются идиомами. Это хорошие решения
проектирования, характерные для конкретного
языка или программной платформы, и потому не
универсальные.
На наивысшем уровне
существуют архитектурные шаблоны, они
охватывают собой архитектуру всей программной
системы.
Алгоритмы по своей сути также являются
шаблонами, но не проектирования, а вычисления,
так как решают вычислительные задачи.
В сравнении с полностью самостоятельным
проектированием, шаблоны обладают рядом
преимуществ. Основная польза от использования
шаблонов состоит в снижении сложности разработки за
счёт готовых абстракций для решения целого класса
проблем. Шаблон даёт решению свое имя, что облегчает
коммуникацию между разработчиками, позволяя
ссылаться на известные шаблоны. Таким образом, за
счёт шаблонов производится унификация деталей
решений: модулей, элементов проекта, — снижается
количество ошибок.
Применение шаблонов концептуально сродни
использованию готовых библиотек кода. Правильно
сформулированный шаблон проектирования позволяет,
отыскав удачное решение, пользоваться им снова и
снова. Набор шаблонов помогает разработчику выбрать
возможный, наиболее подходящий вариант
проектирования.
Название Оригинальное название Описание
Описан вDesign
Patterns
Основные шаблоны (Fundamental)
Шаблон
делегирования
Delegation pattern
Объект внешне
выражает некоторое
поведение, но в
реальности передаёт
ответственность за
выполнение этого
поведения связанному
объекту.
Н/Д
Шаблон
функциональног
о дизайна
Functional design
Гарантирует, что
каждый модуль
компьютерной
программы имеет
только одну
обязанность и
исполняет её с
минимумом побочных
эффектов на другие
части программы.
Н/Д
Неизменяемый
интерфейс
Immutable
interface
Создание неизменяе
мого объекта.
Н/Д
Интерфейс Interface
Общий метод для
структурирования
компьютерных
программ для того,
чтобы их было проще
понять.
Н/Д
Интерфейс-маркер Marker interface
В качестве атрибута
(как пометки
объектной сущности)
применяется наличие
или отсутствие
реализации
интерфейса-маркера.
В современных языках
программирования
вместо этого могут
применяться атрибуты
или аннотации.
Н/Д
Контейнер
свойств
Property Container
Позволяет добавлять
дополнительные свойства
для класса в контейнер
(внутри класса), вместо
расширения класса новыми
свойствами.
Н/Д
Event Channel Event Channel
Расширяет шаблон
Publish/Subscribe, создавая
централизованный канал для
событий. Использует объект-
представитель для подписки и
объект-представитель для
публикации события в канале.
Представитель существует
отдельно от реального
издателя или подписчика.
Подписчик может получать
опубликованные события от
более чем одного объекта,
даже если он зарегистрирован
только на одном канале.
Н/Д
Порождающие шаблоны (Creational) — шаблоны
проектирования, которые абстрагируют процесс
инстанцирования. Они позволяют сделать систему
независимой от способа создания, композиции и
представления объектов. Шаблон, порождающий классы,
использует наследование, чтобы изменять инстанцируемый
класс, а шаблон, порождающий объекты, делегирует
инстанцирование другому объекту.
Абстрактная
фабрика Abstract factory
Класс, который
представляет
собой
интерфейс для
создания
компонентов
системы.
Да
Строитель Builder
Класс, который
представляет
собой
интерфейс для
создания
сложного
объекта.
Да
Фабричный метод Factory method
Определяет интерфейс для
создания объекта, но оставляет
подклассам решение о том,
какой класс инстанцировать.
Да
Отложенная
инициализация
Lazy
initialization
Объект, инициализируемый во
время первого обращения к нему.
Нет
Пул одиночек Multiton
Гарантирует, что класс имеет
поименованные экземпляры
объекта и обеспечивает
глобальную точку доступа к ним.
Нет
Объектный пул Object pool
Класс, который представляет
собой интерфейс для работы с
набором инициализированных и
готовых к использованию
объектов.
Нет
Прототип Prototype
Определяет интерфейс создания
объекта через клонирование
другого объекта вместо создания
через конструктор.
Да
Получение
ресурса есть
инициализация
Resource
acquisition is
initialization
(RAII)
Получение
некоторого ресурса
совмещается с
инициализацией, а
освобождение — с
уничтожением
объекта.
Нет
Одиночка Singleton
Класс, который
может иметь только
один экземпляр.
Да
Структурные шаблоны (Structural) определяют различные сложные
структуры, которые изменяют интерфейс уже существующих
объектов или его реализацию, позволяя облегчить разработку и
оптимизировать программу.
 Производящие шаблоны (Creational
patterns), предназначенные для создания
объектов.
 Поведенческие шаблоны (Behavioral
patterns), обеспечивающие координацию
функционального взаимодействия между
объектами.
 Структурные шаблоны (Structural patterns),
используемые для управления
статическими, структурными связями между
объектами.
 Системные шаблоны (System patterns),
предназначенные для управления
взаимодействием на системном уровне.
 Отдельный класс (single class). Шаблон
применяется к отдельному,
независимому классу.
 Компонент (component). Шаблон
используется для создания группы
классов.
 Архитектурный (architectural). Шаблон
используется для координации работы
систем и подсистем.
Кудряшов С.Н Inc ©

More Related Content

Viewers also liked

Interview powerpoint
Interview powerpointInterview powerpoint
Interview powerpointdanny19982
 
August 2015 - Market snapshot - General Overview
August 2015 - Market snapshot - General OverviewAugust 2015 - Market snapshot - General Overview
August 2015 - Market snapshot - General OverviewMLSListings Inc
 
S3 addressing dimensions of quality education holistically c4_r
S3 addressing dimensions of quality education holistically c4_rS3 addressing dimensions of quality education holistically c4_r
S3 addressing dimensions of quality education holistically c4_rPorticus Vienna
 
Questionnaire results
Questionnaire resultsQuestionnaire results
Questionnaire resultsEloiseHatton
 
EF AP DOS Job Description 2015
EF AP DOS Job Description 2015EF AP DOS Job Description 2015
EF AP DOS Job Description 2015nat wiertel
 
метод Oracle (45)
метод Oracle (45)метод Oracle (45)
метод Oracle (45)romachka_pole
 
защита информации (53)
защита информации (53)защита информации (53)
защита информации (53)romachka_pole
 
Unhcr training on consecutive interpreting
Unhcr training on consecutive interpretingUnhcr training on consecutive interpreting
Unhcr training on consecutive interpretingmarisensy
 
Muestreo del trabajo
Muestreo del trabajoMuestreo del trabajo
Muestreo del trabajoNeil Condori
 
Exploring Community Resilience
Exploring Community ResilienceExploring Community Resilience
Exploring Community ResilienceKirsty Tait
 

Viewers also liked (14)

Interview powerpoint
Interview powerpointInterview powerpoint
Interview powerpoint
 
August 2015 - Market snapshot - General Overview
August 2015 - Market snapshot - General OverviewAugust 2015 - Market snapshot - General Overview
August 2015 - Market snapshot - General Overview
 
ahmed cv 2
ahmed cv 2ahmed cv 2
ahmed cv 2
 
S3 addressing dimensions of quality education holistically c4_r
S3 addressing dimensions of quality education holistically c4_rS3 addressing dimensions of quality education holistically c4_r
S3 addressing dimensions of quality education holistically c4_r
 
Questionnaire results
Questionnaire resultsQuestionnaire results
Questionnaire results
 
EF AP DOS Job Description 2015
EF AP DOS Job Description 2015EF AP DOS Job Description 2015
EF AP DOS Job Description 2015
 
INS2-2442895385
INS2-2442895385INS2-2442895385
INS2-2442895385
 
метод Oracle (45)
метод Oracle (45)метод Oracle (45)
метод Oracle (45)
 
защита информации (53)
защита информации (53)защита информации (53)
защита информации (53)
 
Unhcr training on consecutive interpreting
Unhcr training on consecutive interpretingUnhcr training on consecutive interpreting
Unhcr training on consecutive interpreting
 
Muestreo del trabajo
Muestreo del trabajoMuestreo del trabajo
Muestreo del trabajo
 
Solución de práctica 3
Solución  de práctica 3Solución  de práctica 3
Solución de práctica 3
 
Exploring Community Resilience
Exploring Community ResilienceExploring Community Resilience
Exploring Community Resilience
 
10200 123 act-2_grupal.
10200 123 act-2_grupal.10200 123 act-2_grupal.
10200 123 act-2_grupal.
 

Similar to шаблоны проектирования (42)

Конспект лекций по курсу "Шаблоны разработки ПО"
Конспект лекций по курсу "Шаблоны разработки ПО"Конспект лекций по курсу "Шаблоны разработки ПО"
Конспект лекций по курсу "Шаблоны разработки ПО"Sergey Nemchinsky
 
Шаблоны проектирования GoF
Шаблоны проектирования GoFШаблоны проектирования GoF
Шаблоны проектирования GoFUnguryan Vitaliy
 
C++ осень 2013 лекция 8
C++ осень 2013 лекция 8C++ осень 2013 лекция 8
C++ осень 2013 лекция 8Technopark
 
Общие темы. Тема 02.
Общие темы. Тема 02.Общие темы. Тема 02.
Общие темы. Тема 02.Igor Shkulipa
 
Большие проекты, архитектура и фреймворки.
Большие проекты, архитектура и фреймворки.Большие проекты, архитектура и фреймворки.
Большие проекты, архитектура и фреймворки.EatDog
 
Шаблоны разработки ПО. Часть 1. Введние
Шаблоны разработки ПО. Часть 1. ВведниеШаблоны разработки ПО. Часть 1. Введние
Шаблоны разработки ПО. Часть 1. ВведниеSergey Nemchinsky
 
Шаблоны проектирования в Magento
Шаблоны проектирования в MagentoШаблоны проектирования в Magento
Шаблоны проектирования в MagentoPavel Usachev
 
Практический анализ и визуальное моделирование на UML
Практический анализ и визуальное моделирование на UMLПрактический анализ и визуальное моделирование на UML
Практический анализ и визуальное моделирование на UMLNikolai Kireev
 
Понятия технологии разработки объектно-ориентированных информационных систем ...
Понятия технологии разработки объектно-ориентированных информационных систем ...Понятия технологии разработки объектно-ориентированных информационных систем ...
Понятия технологии разработки объектно-ориентированных информационных систем ...Aimurat Adilbekov
 
системы создания и публикации презентаций
системы создания и публикации презентацийсистемы создания и публикации презентаций
системы создания и публикации презентацийkatrindakatrin
 
Глава 2: Среда разработки NetBeans
Глава 2: Среда разработки NetBeansГлава 2: Среда разработки NetBeans
Глава 2: Среда разработки NetBeansmetaform
 
Unified modeling language basic-part 1
Unified modeling language basic-part 1Unified modeling language basic-part 1
Unified modeling language basic-part 1ISsoft
 
C++ Базовый. Занятие 16.
C++ Базовый. Занятие 16. C++ Базовый. Занятие 16.
C++ Базовый. Занятие 16. Igor Shkulipa
 
C# Desktop. Занятие 08.
C# Desktop. Занятие 08.C# Desktop. Занятие 08.
C# Desktop. Занятие 08.Igor Shkulipa
 
C++ весна 2014 лекция 5
C++ весна 2014 лекция 5C++ весна 2014 лекция 5
C++ весна 2014 лекция 5Technopark
 

Similar to шаблоны проектирования (42) (20)

Конспект лекций по курсу "Шаблоны разработки ПО"
Конспект лекций по курсу "Шаблоны разработки ПО"Конспект лекций по курсу "Шаблоны разработки ПО"
Конспект лекций по курсу "Шаблоны разработки ПО"
 
Шаблоны проектирования GoF
Шаблоны проектирования GoFШаблоны проектирования GoF
Шаблоны проектирования GoF
 
C++ осень 2013 лекция 8
C++ осень 2013 лекция 8C++ осень 2013 лекция 8
C++ осень 2013 лекция 8
 
Общие темы. Тема 02.
Общие темы. Тема 02.Общие темы. Тема 02.
Общие темы. Тема 02.
 
Большие проекты, архитектура и фреймворки.
Большие проекты, архитектура и фреймворки.Большие проекты, архитектура и фреймворки.
Большие проекты, архитектура и фреймворки.
 
Uml
UmlUml
Uml
 
Software Design Patterns
Software Design PatternsSoftware Design Patterns
Software Design Patterns
 
Шаблоны разработки ПО. Часть 1. Введние
Шаблоны разработки ПО. Часть 1. ВведниеШаблоны разработки ПО. Часть 1. Введние
Шаблоны разработки ПО. Часть 1. Введние
 
Шаблоны проектирования в Magento
Шаблоны проектирования в MagentoШаблоны проектирования в Magento
Шаблоны проектирования в Magento
 
Практический анализ и визуальное моделирование на UML
Практический анализ и визуальное моделирование на UMLПрактический анализ и визуальное моделирование на UML
Практический анализ и визуальное моделирование на UML
 
Понятия технологии разработки объектно-ориентированных информационных систем ...
Понятия технологии разработки объектно-ориентированных информационных систем ...Понятия технологии разработки объектно-ориентированных информационных систем ...
Понятия технологии разработки объектно-ориентированных информационных систем ...
 
системы создания и публикации презентаций
системы создания и публикации презентацийсистемы создания и публикации презентаций
системы создания и публикации презентаций
 
Глава 2: Среда разработки NetBeans
Глава 2: Среда разработки NetBeansГлава 2: Среда разработки NetBeans
Глава 2: Среда разработки NetBeans
 
Unified modeling language basic-part 1
Unified modeling language basic-part 1Unified modeling language basic-part 1
Unified modeling language basic-part 1
 
Нотация UML / UML Notation
Нотация UML / UML NotationНотация UML / UML Notation
Нотация UML / UML Notation
 
C++ Базовый. Занятие 16.
C++ Базовый. Занятие 16. C++ Базовый. Занятие 16.
C++ Базовый. Занятие 16.
 
C# Desktop. Занятие 08.
C# Desktop. Занятие 08.C# Desktop. Занятие 08.
C# Desktop. Занятие 08.
 
C++ весна 2014 лекция 5
C++ весна 2014 лекция 5C++ весна 2014 лекция 5
C++ весна 2014 лекция 5
 
DESIGN PATTERNS? EASY!
DESIGN PATTERNS? EASY!DESIGN PATTERNS? EASY!
DESIGN PATTERNS? EASY!
 
Genome
GenomeGenome
Genome
 

More from romachka_pole

управление конфигураций и документирование программного обеспечения (49)
управление конфигураций и документирование программного обеспечения (49)управление конфигураций и документирование программного обеспечения (49)
управление конфигураций и документирование программного обеспечения (49)romachka_pole
 
технология и отладка по (47)
технология и отладка по (47)технология и отладка по (47)
технология и отладка по (47)romachka_pole
 
методология Rad (46)
методология Rad (46)методология Rad (46)
методология Rad (46)romachka_pole
 
технология Rational unified process (44)
технология Rational unified process (44)технология Rational unified process (44)
технология Rational unified process (44)romachka_pole
 
Xp программирование (41)
Xp программирование (41)Xp программирование (41)
Xp программирование (41)romachka_pole
 
принципы проектирования интерфейса (37)
принципы проектирования интерфейса (37)принципы проектирования интерфейса (37)
принципы проектирования интерфейса (37)romachka_pole
 
диаграмма кооперации, реализации(25 26 33 34 )
диаграмма кооперации, реализации(25 26 33 34 )диаграмма кооперации, реализации(25 26 33 34 )
диаграмма кооперации, реализации(25 26 33 34 )romachka_pole
 
диаграмма кооперации, реализации(25 26 33 34 )
диаграмма кооперации, реализации(25 26 33 34 )диаграмма кооперации, реализации(25 26 33 34 )
диаграмма кооперации, реализации(25 26 33 34 )romachka_pole
 
принцип построения диаграммы последовательности (24 32)
принцип построения диаграммы последовательности (24 32)принцип построения диаграммы последовательности (24 32)
принцип построения диаграммы последовательности (24 32)romachka_pole
 
диаграмма кооперации, реализации(25 26 33 34 )
диаграмма кооперации, реализации(25 26 33 34 )диаграмма кооперации, реализации(25 26 33 34 )
диаграмма кооперации, реализации(25 26 33 34 )romachka_pole
 
диаграмма кооперации, реализации(25 26 33 34 )
диаграмма кооперации, реализации(25 26 33 34 )диаграмма кооперации, реализации(25 26 33 34 )
диаграмма кооперации, реализации(25 26 33 34 )romachka_pole
 
принцип построения диаграммы последовательности (24 32)
принцип построения диаграммы последовательности (24 32)принцип построения диаграммы последовательности (24 32)
принцип построения диаграммы последовательности (24 32)romachka_pole
 
Case средства (16 17)
Case средства (16 17)Case средства (16 17)
Case средства (16 17)romachka_pole
 
этапы создания по при обьективном подходе( ) (16)
этапы создания по при обьективном подходе( ) (16)этапы создания по при обьективном подходе( ) (16)
этапы создания по при обьективном подходе( ) (16)romachka_pole
 
Case средства (16 17)
Case средства (16 17)Case средства (16 17)
Case средства (16 17)romachka_pole
 
Case средства (16 17)
Case средства (16 17)Case средства (16 17)
Case средства (16 17)romachka_pole
 
классы. отношения между классами. объекты. отношения между объектами (15)
классы. отношения между классами. объекты. отношения между объектами (15)классы. отношения между классами. объекты. отношения между объектами (15)
классы. отношения между классами. объекты. отношения между объектами (15)romachka_pole
 
структурный подход (7)
структурный подход (7)структурный подход (7)
структурный подход (7)romachka_pole
 
управления требованиями к систем (3)
управления требованиями к  систем (3)управления требованиями к  систем (3)
управления требованиями к систем (3)romachka_pole
 

More from romachka_pole (20)

управление конфигураций и документирование программного обеспечения (49)
управление конфигураций и документирование программного обеспечения (49)управление конфигураций и документирование программного обеспечения (49)
управление конфигураций и документирование программного обеспечения (49)
 
технология и отладка по (47)
технология и отладка по (47)технология и отладка по (47)
технология и отладка по (47)
 
методология Rad (46)
методология Rad (46)методология Rad (46)
методология Rad (46)
 
технология Rational unified process (44)
технология Rational unified process (44)технология Rational unified process (44)
технология Rational unified process (44)
 
Xp программирование (41)
Xp программирование (41)Xp программирование (41)
Xp программирование (41)
 
принципы проектирования интерфейса (37)
принципы проектирования интерфейса (37)принципы проектирования интерфейса (37)
принципы проектирования интерфейса (37)
 
диаграмма кооперации, реализации(25 26 33 34 )
диаграмма кооперации, реализации(25 26 33 34 )диаграмма кооперации, реализации(25 26 33 34 )
диаграмма кооперации, реализации(25 26 33 34 )
 
диаграмма кооперации, реализации(25 26 33 34 )
диаграмма кооперации, реализации(25 26 33 34 )диаграмма кооперации, реализации(25 26 33 34 )
диаграмма кооперации, реализации(25 26 33 34 )
 
принцип построения диаграммы последовательности (24 32)
принцип построения диаграммы последовательности (24 32)принцип построения диаграммы последовательности (24 32)
принцип построения диаграммы последовательности (24 32)
 
диаграмма кооперации, реализации(25 26 33 34 )
диаграмма кооперации, реализации(25 26 33 34 )диаграмма кооперации, реализации(25 26 33 34 )
диаграмма кооперации, реализации(25 26 33 34 )
 
диаграмма кооперации, реализации(25 26 33 34 )
диаграмма кооперации, реализации(25 26 33 34 )диаграмма кооперации, реализации(25 26 33 34 )
диаграмма кооперации, реализации(25 26 33 34 )
 
принцип построения диаграммы последовательности (24 32)
принцип построения диаграммы последовательности (24 32)принцип построения диаграммы последовательности (24 32)
принцип построения диаграммы последовательности (24 32)
 
Case средства (16 17)
Case средства (16 17)Case средства (16 17)
Case средства (16 17)
 
этапы создания по при обьективном подходе( ) (16)
этапы создания по при обьективном подходе( ) (16)этапы создания по при обьективном подходе( ) (16)
этапы создания по при обьективном подходе( ) (16)
 
Case средства (16 17)
Case средства (16 17)Case средства (16 17)
Case средства (16 17)
 
Case средства (16 17)
Case средства (16 17)Case средства (16 17)
Case средства (16 17)
 
классы. отношения между классами. объекты. отношения между объектами (15)
классы. отношения между классами. объекты. отношения между объектами (15)классы. отношения между классами. объекты. отношения между объектами (15)
классы. отношения между классами. объекты. отношения между объектами (15)
 
ооп (13)
ооп (13)ооп (13)
ооп (13)
 
структурный подход (7)
структурный подход (7)структурный подход (7)
структурный подход (7)
 
управления требованиями к систем (3)
управления требованиями к  систем (3)управления требованиями к  систем (3)
управления требованиями к систем (3)
 

шаблоны проектирования (42)

  • 1.
  • 2. В разработке программного обеспечения — повторимая архитектурная конструкция, представляющая собой решение проблемы проектирования в рамках некоторого часто возникающего контекста. Обычно шаблон не является законченным образцом, который может быть прямо преобразован в код; это лишь пример решения задачи, который можно использовать в различных ситуациях. Объектно-ориентированные шаблоны показывают отношения и взаимодействия ме жду классами или объектами, без определения того, какие конечные классы или объекты приложения будут использоваться.
  • 3. «Низкоуровневые» шаблоны, учитывающие специфику конкретного языка программирования, называются идиомами. Это хорошие решения проектирования, характерные для конкретного языка или программной платформы, и потому не универсальные. На наивысшем уровне существуют архитектурные шаблоны, они охватывают собой архитектуру всей программной системы. Алгоритмы по своей сути также являются шаблонами, но не проектирования, а вычисления, так как решают вычислительные задачи.
  • 4. В сравнении с полностью самостоятельным проектированием, шаблоны обладают рядом преимуществ. Основная польза от использования шаблонов состоит в снижении сложности разработки за счёт готовых абстракций для решения целого класса проблем. Шаблон даёт решению свое имя, что облегчает коммуникацию между разработчиками, позволяя ссылаться на известные шаблоны. Таким образом, за счёт шаблонов производится унификация деталей решений: модулей, элементов проекта, — снижается количество ошибок. Применение шаблонов концептуально сродни использованию готовых библиотек кода. Правильно сформулированный шаблон проектирования позволяет, отыскав удачное решение, пользоваться им снова и снова. Набор шаблонов помогает разработчику выбрать возможный, наиболее подходящий вариант проектирования.
  • 5. Название Оригинальное название Описание Описан вDesign Patterns Основные шаблоны (Fundamental) Шаблон делегирования Delegation pattern Объект внешне выражает некоторое поведение, но в реальности передаёт ответственность за выполнение этого поведения связанному объекту. Н/Д Шаблон функциональног о дизайна Functional design Гарантирует, что каждый модуль компьютерной программы имеет только одну обязанность и исполняет её с минимумом побочных эффектов на другие части программы. Н/Д
  • 6. Неизменяемый интерфейс Immutable interface Создание неизменяе мого объекта. Н/Д Интерфейс Interface Общий метод для структурирования компьютерных программ для того, чтобы их было проще понять. Н/Д Интерфейс-маркер Marker interface В качестве атрибута (как пометки объектной сущности) применяется наличие или отсутствие реализации интерфейса-маркера. В современных языках программирования вместо этого могут применяться атрибуты или аннотации. Н/Д
  • 7. Контейнер свойств Property Container Позволяет добавлять дополнительные свойства для класса в контейнер (внутри класса), вместо расширения класса новыми свойствами. Н/Д Event Channel Event Channel Расширяет шаблон Publish/Subscribe, создавая централизованный канал для событий. Использует объект- представитель для подписки и объект-представитель для публикации события в канале. Представитель существует отдельно от реального издателя или подписчика. Подписчик может получать опубликованные события от более чем одного объекта, даже если он зарегистрирован только на одном канале. Н/Д
  • 8. Порождающие шаблоны (Creational) — шаблоны проектирования, которые абстрагируют процесс инстанцирования. Они позволяют сделать систему независимой от способа создания, композиции и представления объектов. Шаблон, порождающий классы, использует наследование, чтобы изменять инстанцируемый класс, а шаблон, порождающий объекты, делегирует инстанцирование другому объекту. Абстрактная фабрика Abstract factory Класс, который представляет собой интерфейс для создания компонентов системы. Да Строитель Builder Класс, который представляет собой интерфейс для создания сложного объекта. Да
  • 9. Фабричный метод Factory method Определяет интерфейс для создания объекта, но оставляет подклассам решение о том, какой класс инстанцировать. Да Отложенная инициализация Lazy initialization Объект, инициализируемый во время первого обращения к нему. Нет Пул одиночек Multiton Гарантирует, что класс имеет поименованные экземпляры объекта и обеспечивает глобальную точку доступа к ним. Нет Объектный пул Object pool Класс, который представляет собой интерфейс для работы с набором инициализированных и готовых к использованию объектов. Нет Прототип Prototype Определяет интерфейс создания объекта через клонирование другого объекта вместо создания через конструктор. Да
  • 10. Получение ресурса есть инициализация Resource acquisition is initialization (RAII) Получение некоторого ресурса совмещается с инициализацией, а освобождение — с уничтожением объекта. Нет Одиночка Singleton Класс, который может иметь только один экземпляр. Да Структурные шаблоны (Structural) определяют различные сложные структуры, которые изменяют интерфейс уже существующих объектов или его реализацию, позволяя облегчить разработку и оптимизировать программу.
  • 11.  Производящие шаблоны (Creational patterns), предназначенные для создания объектов.  Поведенческие шаблоны (Behavioral patterns), обеспечивающие координацию функционального взаимодействия между объектами.  Структурные шаблоны (Structural patterns), используемые для управления статическими, структурными связями между объектами.  Системные шаблоны (System patterns), предназначенные для управления взаимодействием на системном уровне.
  • 12.  Отдельный класс (single class). Шаблон применяется к отдельному, независимому классу.  Компонент (component). Шаблон используется для создания группы классов.  Архитектурный (architectural). Шаблон используется для координации работы систем и подсистем.