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

Содержание

Слайд 2

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

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

Формализованное описание часто встречающейся задачи проектирования, удачное решение данной задачи

и рекомендации по применению этого решения в различных ситуациях
Слайд 3

Преимущества Снижение сложности разработки Упрощение коммуникации Правильно сформулированный шаблон позволяет пользоваться

Преимущества

Снижение сложности разработки
Упрощение коммуникации
Правильно сформулированный шаблон позволяет пользоваться им снова и

снова
Набор шаблонов помогает разработчику выбрать наиболее подходящий вариант проектирования
Слайд 4

Недостатки Может привести к усложнению программы Необоснованное применение шаблона

Недостатки

Может привести к усложнению программы
Необоснованное применение шаблона

Слайд 5

Классификация Архитектурные паттерны Паттерны проектирования Паттерны анализа Паттерны тестирования Паттерны реализации

Классификация

Архитектурные паттерны
Паттерны проектирования
Паттерны анализа
Паттерны тестирования
Паттерны реализации

Слайд 6

Архитектурные паттерны Описывают структурную схему системы в целом

Архитектурные паттерны

Описывают структурную схему системы в целом

Слайд 7

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

Паттерны проектирования

Описывают схемы детализации программных подсистем и отношений между ними.

Слайд 8

Паттерны анализа Представляют общие схемы организации процесса объектно-ориентированного моделирования.

Паттерны анализа

Представляют общие схемы организации процесса объектно-ориентированного моделирования.

Слайд 9

Паттерны тестирования Определяют общие схемы организации процесса тестирования программных систем

Паттерны тестирования

Определяют общие схемы организации процесса тестирования программных систем

Слайд 10

Паттерны реализации Описывают шаблоны, которые используются при написании программного кода.

Паттерны реализации

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

Слайд 11

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

Идиомы

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

Слайд 12

Идиомы Инкремент: Обмен значениями: Бесконечный цикл: inc(i); i++; temp = a;

Идиомы

Инкремент:
Обмен значениями:
Бесконечный цикл:

inc(i);
i++;
temp = a;
a = b;
b = temp;
while True:
do_something()
for

(;;){
do_something();}
Слайд 13

Классификация Порождающие шаблоны – предназначены для создания новых объектов в системе

Классификация

Порождающие шаблоны – предназначены для создания новых объектов в системе
Структурные шаблоны

– решают задачи компоновки системы в виде классов и объектов
Шаблоны поведения – предназначены для распределения обязанностей между объектами в системе
Слайд 14

Порождающие шаблоны Фабричный метод Абстрактная фабрика Строитель Прототип Одиночка Пул объектов

Порождающие шаблоны

Фабричный метод
Абстрактная фабрика
Строитель
Прототип
Одиночка
Пул объектов

Слайд 15

Фабрика объектов

Фабрика объектов

Слайд 16

Фабрика объектов

Фабрика объектов

Слайд 17

Строитель В системе могут существовать сложные объекты, создание которых за одну

Строитель

В системе могут существовать сложные объекты, создание которых за одну операцию

затруднительно или невозможно. Требуется поэтапное построение объектов с контролем результатов выполнения каждого этапа.
Слайд 18

Строитель

Строитель

Слайд 19

Одиночка Контролирует создание единственного экземпляра некоторого класса и предоставляет доступ к нему.

Одиночка

Контролирует создание единственного экземпляра некоторого класса и предоставляет доступ к нему.

Слайд 20

Одиночка

Одиночка

Слайд 21

Структурные шаблоны Адаптер Мост Компоновщик Декоратор Фасад Приспособленец Заместитель

Структурные шаблоны

Адаптер
Мост
Компоновщик
Декоратор
Фасад
Приспособленец
Заместитель

Слайд 22

Адаптер Представляет собой программную обертку над уже существующими классами и предназначен

Адаптер

Представляет собой программную обертку над уже существующими классами и предназначен для

преобразования их интерфейсов к виду, пригодному для последующего использования в новом программном проекте.
Слайд 23

Адаптер

Адаптер

Слайд 24

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

Компоновщик

Используется для расширения функциональности объектов. Являясь гибкой альтернативой порождению классов, паттерн

Decorator динамически добавляет объекту новые обязанности.
Слайд 25

Компоновщик

Компоновщик

Слайд 26

Шаблоны поведения Цепочка обязанностей Команда Итератор Интерпретатор Посредник Хранитель Наблюдатель Состояние Стратегия Шаблонный метод Посетитель

Шаблоны поведения

Цепочка обязанностей
Команда
Итератор
Интерпретатор
Посредник

Хранитель
Наблюдатель
Состояние
Стратегия
Шаблонный метод
Посетитель

Слайд 27

Шаблонный метод Определяет основу алгоритма и позволяет подклассам изменить некоторые шаги

Шаблонный метод

Определяет основу алгоритма и позволяет подклассам изменить некоторые шаги этого

алгоритма без изменения его общей структуры.
Слайд 28

Шаблонный метод

Шаблонный метод

Слайд 29

Антипаттерны Golden hammer Hard code Magic numbers Programming by permutation Blind faith

Антипаттерны

Golden hammer
Hard code
Magic numbers
Programming by permutation
Blind faith