Шаблонное проектирование
1/30
1.69M
Категория: ПрограммированиеПрограммирование

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

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

Выполнила студентка
группы ИВТ-32
Залюбовина Мария

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

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

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

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

4. Недостатки

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

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


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

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

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

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

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

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

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

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

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

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

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

11. Идиомы

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

12. Идиомы

• Инкремент:
• Обмен значениями:
• Бесконечный цикл:
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

30. Литература

• Мартин Р. // Принципы, паттерны и методики
гибкой разработки на языке C#. – СПб.: СимволПлюс, 2011.
• http://cpp-reference.ru/patterns
English     Русский Правила