Слайд 1Программная инженерия
Дмитриев Андрей Владиславович
andrei-dmitriev@yandex.ru
2008
Слайд 2Шаблоны проектирования
Англ. design pattern.
Шаблон (паттерн) представляет собой формализованное описание часто встречающейся
задачи проектирования, удачное решение данной задачи, а также рекомендации по применению этого решения в различных ситуациях.
Шаблон проектирования обязательно имеет одно или несколько общеупотребимых наименований.
Рекомендуемая книга: Э.Гамма, Р.Хелм, Р.Джонсон, Дж.Влиссидес. "Приемы объектно-ориентированного проектирования. Паттерны проектирования"
Слайд 3Почему?
Название прижилось в результате выхода в 70-х годах в свет книги
по архитектуре (Кристофер Александер)
1987 г. К.Бек и В.Каннигем эти идеи применены в разработке графических оболочек на языке SmallTalk.
1988 г. Э.Гамма начал писать докторскую о приложении идей шаблонов к ПО.
Слайд 4Преимущества
Модель системы, построенная в терминах паттернов проектирования, фактически является структурированным выделением
тех элементов и связей, которые значимы при решении поставленной задачи
Модель более проста и наглядна в изучении, чем стандартная модель
Позволяет глубоко и всесторонне проработать архитектуру разрабатываемой системы с использованием специального языка
Повышает устойчивость системы к изменению требований
Упрощает последующую доработку системы
Незаменимы для общения разработчиков друг другом
Слайд 5Базовые паттерны
Abstract factory
Adapter
Composite
Decorator
Factory method
Observer
Strategy
Template Method
Слайд 6Общая классификация
Шаблоны создания.
Структурные шаблоны.
Поведенческие шаблоны.
Шаблоны, относящиеся к многопоточному проектированию.
Слайд 7Паттерны создания
Fred fred = new Fred();
Обычный способ создания экземпляра:
Существуют альтернативные способы
создания:
Factory
Abstract factory
Builder
Prototype
Singleton
Слайд 8Структурные паттерны
Adapter
Decorator
Facade
Proxy
Слайд 9Поведенческие паттерны
Iterator
Observer
Strategy
Visitor
Слайд 10Cсылки
Э.Гамма, Р.Хелм, Р.Джонсон, Дж.Влиссидес. "Приемы объектно-ориентированного проектирования. Паттерны проектирования"