Введение
Рекомендуемая литература
Что такое шаблон?
Шаблон вычисления
Шаблон структуры данных
Возникновение шаблонов проектирования
Понятие шаблона проектирования
Достоинства шаблонов проектирования
Достоинства шаблонов проектирования
Достоинства шаблонов проектирования
История развития шаблонов проектирования
История развития шаблонов проектирования
История развития шаблонов проектирования
Шаблон проектирования Singleton
Шаблон проектирования Information Expert
Шаблон проектирования Command
Классификация шаблонов проектирования
Классификация шаблонов проектирования
Классификация шаблонов проектирования
Классификация шаблонов проектирования
Классификация шаблонов проектирования
8.98M
Category: programmingprogramming

Введение в шаблоны и их классификация

1. Введение

2. Рекомендуемая литература

Э. Гамма [и др.]. Приемы объектноориентированного проектирования.
Паттерны проектирования. – С.-Пб.: Питер,
2008
М. Гранд. Шаблоны проектирования в
Java. – М.: Новое знание, 2004
А. Шаллоуей, Дж. Тротт. Шаблоны
проектирования. Новый подход к
объектно-ориентированному анализу и
проектированию. – М.: Вильямс, 2002

3. Что такое шаблон?

или

4. Шаблон вычисления

нет
да
нет
да
алгоритм поиска
минимального
элемента массива и
его индекса

5. Шаблон структуры данных

template <class Type> class List
{
Type* array;
int size;
public:
List();
List(const List<Type>& list);
Type& operator[] (int index);
int getSize() const;
List<Type>& operator= (const List<Type>& list);
void add(Type value);
~List();
};

6. Возникновение шаблонов проектирования

1970-е годы
Архитектор
Кристофер
Александер

7. Понятие шаблона проектирования

Имя
Описание задачи
Контекст (ситуация)
Предлагаемое решение
Ожидаемые результаты
Повторяемость

8. Достоинства шаблонов проектирования

1.
Обобщение опыта экспертов и
доступное его изложение

9. Достоинства шаблонов проектирования

2.
Формирование профессиональной
терминологии

10. Достоинства шаблонов проектирования

3.
Экономия времени на поиск решения

11. История развития шаблонов проектирования

1.
2.
1970-е годы – архитектор Кристофер
Александер составил набор
шаблонов для проектирования зданий
и городов
1987 год – Кент Бэк и Вард Каннигем
применили шаблоны Александера для
разработки графических оболочек на
языке Smalltalk

12. История развития шаблонов проектирования

3.
4.
1988 год – Эрих Гамма приступил к
написанию докторской диссертации по
перенесению этой методики на
разработку программ в целом
1989-91 года – Джеймс Коплин
разрабатывает идиомы для
программирования на C++

13. История развития шаблонов проектирования

5.
1991 год – Эрих Гамма, Ричард
Хелм, Ральф Джонсон и Джон
Влиссидс (Gang of Four, сокр. GoF,
«Банда четырех») публикуют книгу
«Design Patterns — Elements of
Reusable Object-Oriented Software»

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

public class Singleton {
private static Singleton instance = null;
private Singleton() {}
public static Singleton getInstance() {
if(instance == null) {
instance = new Singleton();
}
return instance;
}
}

15. Шаблон проектирования Information Expert

Шаблон Information Expert определяет базовый
принцип назначения обязанностей. Он
утверждает, что обязанности должны быть
назначены объекту, который владеет
максимумом необходимой информации для
выполнения обязанности. Такой объект
называется информационным экспертом
определение взято с wikipedia.org

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

17. Классификация шаблонов проектирования

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

18. Классификация шаблонов проектирования

Шаблоны
проектирования
Объектные
Архитектурные
UI

19. Классификация шаблонов проектирования

Шаблоны
проектирования
Объектные
GRASP
Архитектурные
GoF
UI

20. Классификация шаблонов проектирования

Шаблоны
проектирования
Объектные
GRASP
Архитектурные
GoF
Организационные
Управляющие
Взаимодействие
с БД
UI

21. Классификация шаблонов проектирования

Шаблоны
проектирования
Объектные
GRASP
Архитектурные
GoF
Организационные
Структурные
Управляющие
Поведенческие
Взаимодействие
с БД
Порождающие
UI
English     Русский Rules