Краткое содержание:
1. Паттерн.
Паттерн (англ. pattern — образец, шаблон, система) — заимствованное слово. Слово «pattern» используется как термин в нескольких дисциплинах и технологиях. Смысл термина «паттерн» всегда уже чем просто «образец», и варьируется в зависимости от области знаний, в которой используется. Слово pattern, в зависимости от контекста, имеет широкий диапазон значений.
Паттерн — повторяющийся элемент в различных сферах жизни, в основном в природе и дизайне.
Паттерн (психология):
набор стереотипных поведенческих реакций или последовательностей действий;
объединение сенсорных стимулов как принадлежащих одному классу объектов.
Паттерн (информатика) — эффективный способ решения характерных задач проектирования, в частности проектирования компьютерных программ.
2. Определение.
Паттерн (англ. design pattern) — повторимая архитектурная конструкция, представляющая собой решение проблемы проектирования в рамках некоторого часто возникающего контекста.
Обычно шаблон не является законченным образцом, который может быть прямо преобразован в код; это лишь пример решения задачи, который можно использовать в различных ситуациях.
3. 4 стадии применения паттернов.
Ух ты! Я узнал что такое паттерн, надо куда-то его запилить!
Ого! Я применил в программе 7 паттернов и стало намного лучше!
Ух блин! Как теперь в этой мешанине разобраться кто и куда передает данные?
Хм. Надо смотреть что за задача и понимать какой паттерн и в каком варианте может быть полезен.
5. UML.
UML (англ. Unified Modeling Language — унифицированный язык моделирования) — язык графического описания для объектного моделирования в области разработки программного обеспечения, моделирования бизнес-процессов, системного проектирования и отображения организационных структур. UML был создан для определения, визуализации, проектирования и документирования, в основном, программных систем. UML не является языком программирования, но на основании UML-моделей возможна генерация кода.
6. Диаграммы.
Структурные диаграммы:
диаграмма классов;
диаграмма компонентов;
диаграмма композитной/составной структуры;
диаграмма кооперации (UML2.0);
диаграмма развёртывания;
диаграмма объектов;
диаграмма пакетов;
диаграмма профилей (UML2.2).
Диаграммы поведения:
диаграмма деятельности;
диаграмма состояний;
диаграмма вариантов использования.
Диаграммы взаимодействия:
диаграмма коммуникации (UML2.0) / диаграмма кооперации (UML1.x);
диаграмма обзора взаимодействия (UML2.0);
диаграмма последовательности;
диаграмма синхронизации (UML2.0).
7. Диаграмма классов.
Диаграмма классов (англ. Static Structure diagram) — структурная диаграмма, демонстрирующая общую структуру иерархии классов системы, их коопераций, атрибутов (полей), методов, интерфейсов и взаимосвязей между ними. Широко применяется не только для документирования и визуализации, но также для конструирования посредством прямого или обратного проектирования.
8. Уровни представления.
Анализа. Класс содержит в себе только набросок общих контуров системы и работает как логическая концепция предметной области или программного продукта.
Проектирования. Класс отражает основные проектные решения касательно распределения информации и планируемой функциональности, объединяя в себе сведения о состоянии и операциях.
Реализации. Класс дорабатывается до такого вида, в каком он максимально удобен для воплощения в выбранной среде разработки; при этом не воспрещается опустить в нём те общие свойства, которые не применяются на выбранном языке программирования.
9. Описание классов и его элементов.
10. Статические и абстрактные члены.
11. Связи.
Обобщение
Реализация
Зависимость
Ассоциация
Агрегация
Композиция
12. Обобщение (наследование).
13. Реализация.
14. Зависимость.
15. Ассоциация (ссылка).
16. Агрегация (отделимая часть – целое).
17. Композиция (неотделимая часть – целое).
18. Singlton.
Гарантирует, что у класса есть только один экземпляр.
Обычно используется для доступа к какому-либо ресурсу.
19. Классическая реализация.
20. Ленивая реализация.
21. Ленивая потокобезопасная реализация.
22. Ленивая потокобезопасная реализация с двойной проверкой.
23. Самая короткая реализация.
24. Антипаттерны.