Похожие презентации:
Лекция 7 - Паттерны
1. Архитектура информационных систем
Степаныч З.А.ст. преподаватель кафедры
Информационных систем ИКИТ СФУ
2.
ПаттернЗарекомендовавшее себя
решение определённой
чётко обозначенной
проблемы, которое
принято сообществом
программистов как
стандартное решение
данной проблемы
3.
УЖЕ ИЗВЕСТНЫЕ4.
ФасадПредоставляет унифицированный
интерфейс к группе интерфейсов
подсистемы. Фасад определяет
высокоуровневый интерфейс,
упрощающий работу с подсистемой.
5.
Фасад6.
Фасад7.
Фасад8.
Паттерн репозиторий(Repository)
Репозиторий – класс, что инкапсулирует
необходимую для доступа к источником
данных логику. Этот паттерн ориентирован
на работу с доменными объектами,
разделяя технологию доступа к источнику
данных и модель предметной области.
9.
Паттерн репозиторий(Repository)
10.
Паттерн репозиторий(Repository)
11.
Паттерн единица работы(Unit of Work)
Паттерн Unit of Work позволяет
упростить работу с различными
репозиториями и дает уверенность, что
все репозитории будут использовать
один и тот же контекст данных.
12.
Паттерн единица работы(Unit of Work)
В более сложных вариациях он также
управляет высвобождением памяти,
позволяет «накапливать» изменения в
разных репозиториях и только потом
отправлять их в базу одной транзакцией
или вообще откатить.
13.
Паттерн единица работы(Unit of Work)
14.
Паттерн «Одиночка» (Singleton)Паттерн гарантирует, что для определенного
типа будет создан только один экземпляр
15.
Паттерн «Одиночка» (Singleton)16.
Паттерн «Одиночка» (Singleton)17.
Паттерн «Одиночка»(Singleton)
+
Гарантия
единственного
экземпляра
Единая точка
редактирования кода,
создающего экземпляр
Удобство создания
экземпляров в любом
месте
• Неочевидность способа
создания экземпляра
• Есть обходные пути,
позволяющие всё же
создать второй
экземпляр
• Паттерн в исходной
форме не работает в
многопоточных и
асинхронных
приложениях
• Статика
18.
Паттерн наблюдательОпределяет отношение «Один ко многим» между
объектами таким образом, что при изменении
состояния одного объекта происходит
автоматическое оповещение и обновление всех
зависимых объектов.
В современной форме этот паттерн легче всего
объяснить через систему событий.
Состоит из двух частей. Объекта-источника и
объекта-наблюдателя. Наблюдатель подписывается
на события источника и реагирует на изменение
состояния.
19.
Паттерн наблюдатель20.
Паттерн «Команда»Программируем часть умного дома,
которая будет отвечать за включение и
выключение света и за открытие и
закрытие блэкаут панелей на окнах.
Мы можем включать и выключать свет
Мы можем открывать и закрывать окна
Мы можем отменять команды
21.
Паттерн «Команда»22.
Паттерн «Команда»23.
Паттерн «Команда»24.
Паттерн «Команда»25.
НовинкаПервые паттерны программирования появились при
разработке MVC и спец-языка программирования SmallTalk в 87
году (сама разработка началась ещё в 70-х).
Сам язык стал основой ООП в его текущем виде и множеству
других языков, в том числе и не высокоуровневых
Стали популярны благодаря банде четырёх (GoF).
Гуф
26.
Паттерны. Типы.Фундаментальные Порождающие
Интерфейсы и
шаблоны делегирования
Singleton
Поведенческие
Структурные
Наблюдатель
Facade
27.
Порождающие паттерныШаблоны проектирования, которые абстрагируют
процесс инстанцирования (создания).
Они позволяют сделать систему независимой от
способа создания, композиции и представления
объектов.
Шаблон, порождающий классы, использует
наследование, чтобы изменять создаваемый класс
Шаблон, порождающий объекты, делегирует
создание другому объекту.
Строитель
Фабрики
Прототип
Фабричный метод
Singleton
28.
Простая фабрикаПредоставляет единую
точку создания
объектов разного
типа.
29.
Простая фабрика30.
Простая фабрика31.
Фабричный методЯвляется дополнением к
паттерну «Фабрика».
Позволяет создать
семейство фабрик, где
для каждого конкретного
типа создаётся один из
вариантов его
наследников
32.
Фабричный метод33.
Фабричный метод34.
Поведенческие паттерныШаблоны проектирования, определяющие
алгоритмы и способы реализации взаимодействия
различных объектов и классов.
Определяют взаимодействие между объектами,
увеличивая таким образом его гибкость.
Обсервер
Команда
Шаблонный метод
Стратегия
Состояние (FSM)
35.
СтратегияОпределяет семейство
алгоритмов,
инкапсулирует их
взаимозаменяемость.
Позволяет
модифицировать
алгоритмы независимо от
их использования на
стороне клиента.
36.
Стратегия37.
Стратегия38.
Шаблонный методОпределяет «скелет»
некоторого алгоритма в
методе, оставляя
определение реализации
частей алгоритма
субклассам. Субклассы
могут переопредялть
некоторые части алгоритма
без изменения его
структуры.
39.
Шаблонный метод40.
Шаблонный метод41.
Структурныепаттерны
Шаблоны проектирования, в которых
рассматривается вопрос о том, как из классов и
объектов образуются более крупные структуры.
определяют различные сложные структуры, которые
изменяют интерфейс уже существующих объектов
или его реализацию, позволяя облегчить разработку
и оптимизировать программу.
Адаптер
Декоратор
Прокси
Фасад
Мост
42.
ДекораторДинамически наделяет
объект новым
функционалом и
является гибкой
альтернативой
субклассирования в
области расширения
функционала.
43.
Декоратор44.
Декоратор45.
АдаптерПреобразует интерфейс
одного класса к
интерфейсу другого
класса. Обеспечивает
совместную работу
классов, невозможную в
обычных условиях из-за
несовместимости
интерфейсов
46.
Адаптер47.
ПосткриптумПонимание: Данные, информация, знание и понимание
дают нам возможность эффективно расходовать ресурсы
(efficiency) на получение промежуточных результатов в
продвижении к цели, делать всё правильно.
Мудрость (wisdom) связана с эффективностью достижения самой
конечной цели (effectiveness), т.е. с тем, стремились ли мы сделать
правильную вещь. Мудрость выражается в оценивании
полученного конечного результата. Она придаёт человеку
готовность идти на краткосрочные жертвы ради успешного
достижения цели в долгосрочной перспективе
Программирование