Содержание
- 2. План лекции Повторное использование кода Паттерны проектирования Порождающие паттерны Singleton Factory Method Структурные паттерны Adapter Decorator
- 3. Повторное использование кода Использование кода существующих приложений для создания новых приложений Принципы создания хорошего повторно используемого
- 4. Механизмы повторного использования в ООП Наследование Повторное использование родительского типа и/или реализации Определяется статически Нарушает инкапсуляцию
- 5. Делегирование Один объект в части своей реализации полагается на другой объект Средство обеспечения композиции Программа становится
- 6. Рекомендации по написанию повторно-используемого кода Программируйте в соответствии с интерфейсом, а не реализацией Не объявляйте переменные
- 7. Причины перепроектирования При создании объекта явно указывается класс Зависимость от конкретных операций Зависимость от аппаратной и
- 8. Фреймворки Фреймворк (Framework, каркас) – это набор взаимодействующих классов, составляющих повторно используемое проектное решение для конкретного
- 9. Паттерны проектирования Паттерн проектирования (Design Pattern, образец проектирования, шаблон проектирования) – описание взаимодействия объектов и классов,
- 10. Паттерны в ООП Результат проектирования на уровне ООП – распределение ответственностей и активностей по классам Паттерн
- 11. Фреймворки vs Паттерны Паттерны проектирования более абстрактны, чем фреймворки Как архитектурные элементы паттерны проектирования мельче, чем
- 12. Описания паттернов GoF Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides (1995). Design Patterns: Elements
- 13. Порождающие паттерны Abstract Factory – Абстрактная фабрика Builder – Строитель Factory Method – Фабричный метод Prototype
- 14. Singleton Название и классификация Одиночка – паттерн, порождающий объекты Назначение Гарантирует, что у класса есть только
- 15. Singleton: структура Структура Участники Singleton – одиночка, Определяет операцию Instance , которая позволяет клиентам получать доступ
- 16. Factory Method Название и классификация Фабричный метод – паттерн, порождающий объекты Назначение Определяет интерфейс для создания
- 17. Factory Method Мотивация
- 18. Factory Method Применимость Используйте паттерн фабричный метод, когда: классу заранее неизвестно, объекты каких классов ему нужно
- 19. Factory Method Структура
- 20. Factory Method Особенности Две основных разновидности: класс Сгeator – абстрактный Creator – конкретный класс, в котором
- 21. Структурные паттерны
- 22. Adapter Название и классификация Адаптер – паттерн, структурирующий классы и объекты Назначение Преобразует интерфейс одного класса
- 23. Adapter Применимость Применяйте адаптер классов, когда: хотите использовать существующий класс, но его интерфейс не соответствует вашим
- 24. Adapter (класса) Неприменим, если требуется адаптировать не только конкретный класс, но и его подклассы Возможно изменение
- 25. Adapter (объекта) Один адаптер может работать со множеством адаптируемых объектов, включая объекты подклассов Затруднено замещение операций
- 26. Decorator Название и классификация Декоратор – паттерн, структурирующий объекты Назначение Динамически добавляет объекту новые обязанности. Является
- 27. Decorator Мотивация
- 28. Decorator Применимость Используйте паттерн декоратор: для динамического, прозрачного для клиентов добавления обязанностей объектам для реализации обязанностей,
- 29. Decorator Структура
- 30. Decorator Особенности Большая гибкость, чем у статического наследования Создание цепочек декораторов, в том числе из одних
- 31. Decorator Особенности Соответствие интерфейсов декоратора и декорируемого объекта Возможное отсутствие абстрактного класса декоратора Облегчение, по возможности,
- 32. Proxy Название и классификация Заместитель – паттерн, структурирующий объекты Назначение Является суррогатом другого объекта и контролирует
- 33. Proxy Мотивация Применимость Заместитель применим во всех случаях, когда возникает необходимость сослаться на объект более изощренно,
- 34. Proxy Применимость Удаленный заместитель предоставляет локального представителя вместо объекта, находящегося в другом адресном пространстве Виртуальный заместитель
- 35. Proxy Применимость Умная ссылка замена обычного указателя: подсчет числа ссылок на реальный объект загрузка объекта в
- 36. Proxy Структура Диаграмма объектов
- 37. Паттерны поведения
- 38. Паттерны поведения
- 39. Iterator Название и классификация Итератор – паттерн поведения объектов Назначение Предоставляет способ последовательного доступа ко всем
- 40. Iterator Мотивация
- 41. Iterator Применимость Используйте итератор: Для доступа к содержимому агрегированных объектов без раскрытия их внутреннего представления Для
- 42. Iterator Структура
- 43. Iterator Особенности Поддерживает различные виды обхода агрегата Итераторы упрощают интерфейс класса-агрегата Одновременно для данного агрегата может
- 44. Observer Название и классификация Наблюдатель – паттерн поведения объектов Назначение Определяет зависимость типа “один ко многим”
- 45. Observer Применимость Когда у абстракции есть два аспекта, один из которых зависит от другого. Инкапсуляции этих
- 46. Observer Структура
- 47. Observer Отношения
- 48. Observer Результаты Абстрактная связанность субъекта и наблюдателя Поддержка широковещательных коммуникаций Неожиданные обновления Простой протокол обновления не
- 49. Observer Реализация Отображение субъектов на наблюдателей Наблюдение более чем за одним субъектом Инициатор обновления Модели вытягивания
- 50. Спасибо за внимание!
- 52. Скачать презентацию