Similar presentations:
Шаблонное проектирование
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