Содержание
- 2. Что такое «хороший дизайн» Точного универсально ответа нет и быть не может (скорее можно сказать, что
- 3. Канонические паттерны (GoF-паттерты) GoF – Gang of Four («банда четырех») – Э. Гамма, Р. Хелм, Р.
- 4. Определения Паттерны проектирования – описание взаимодействия объектов и классов, адаптированных для решения общей задачи проектирования в
- 5. Что НЕ является паттерном Готовые классы (в том числе и повторно используемые) Структуры данных Потоки И
- 6. Элементы паттерна (GoF) Имя Как устоявшийся профессиональный термин может использоваться для четкого описания архитектурного решения в
- 7. Описание паттерна (GoF) Название и классификация паттерна Назначение Известен также под именем Мотивация Применимость Структура Участники
- 8. Для чего применяются паттерны Для создания «хорошего дизайна» Инкапсуляция Повторное использование Снижение зависимостей И т.д.
- 9. Механизмы повторного использования Наследование («прозрачный ящик») Наследование класса определяется статически на этапе компиляции Нарушение инкапсуляции родителя
- 10. Классификация GoF-паттернов Порождающие паттерны Отвечают за создание объектов Структурные паттерны Организуют структуру классов (на этапе разработки)
- 11. Пространство GoF-паттернов
- 12. Отношения между GoF-паттернами
- 13. Как выбирать паттерн проектирования Подумайте, как паттерны решают проблемы проектирования Пролистайте разделы каталога, описывающие назначение паттернов
- 14. Как пользоваться паттерном проектирования Прочитайте описание паттерна, чтобы получить о нем общее представление Вернитесь назад и
- 15. Когда использовать паттерны Необоснованное использование паттернов может существенно усложнить программу, поэтому применять паттерны нужно, или когда
- 16. Графическая нотация OMT (Object Modeling Technique) OMT (Object Modeling Technique) – один из методов ООАП и
- 17. OMT, диаграммы классов
- 18. OMT, описание классов Класс обозначается прямоугольником В верхней части напечатано имя класса Описание переменных располагается ниже
- 19. OMT, связи между классами Инстанцирование Наследование Агрегирование Осведомленность (ассоциация, использование)
- 20. Агрегирование и осведомленность И агрегирование и осведомленность – способы композиции объектов и делегирования функциональности Агрегирование Один
- 21. OMT, диаграммы объектов
- 22. OMT, описание объектов В диаграммах объектов приводятся только экземпляры в какой-то определенный момент времени Для обозначения
- 23. ОМТ, диаграммы взаимодействия
- 24. OMT, описание взаимодействий Время на диаграммах взаимодействий откладывается сверху вниз Сплошная вертикальная черта означает время жизни
- 25. Порождающие паттерны Фабричный метод (Factory Method) Абстрактная фабрика (Abstract Factory) Прототип (Prototype) Строитель (Builder) Одиночка (Singleton)
- 26. Порождающие паттерны, причина появления Казалось бы, все классы создаются вызовом своего конструктора, зачем вводить порождающие паттерны?
- 27. Фабричный метод (Factory Method), задача Определяет интерфейс для создания объекта абстрактного (редко конкретного) типа, но скрывает
- 28. Делегирование инстанцирования подклассам В данном конкретном случае является частным случаем абстрактной фабрики с одним видом продукта
- 29. Фабричный метод (Factory Method), пример с созданием документов
- 30. Абстрактная фабрика (Abstract Factory), задача Предоставляет интерфейс для создания семейств взаимосвязанных или взаимозависимых объектов, не специфицируя
- 31. Абстрактная фабрика (Abstract Factory), диаграмма классов
- 32. Абстрактная фабрика (Abstract Factory), пример с различн. оконными системами
- 33. Абстрактная фабрика (Abstract Factory), результаты изолирует конкретные классы упрощает замену семейств продуктов гарантирует сочетаемость продуктов поддержать
- 34. Абстрактная фабрика (Abstract Factory), замечания Нетрудно заметить, что абстрактная фабрика реализуется с помощью фабричных методов
- 35. Прототип (Prototype), задача Задает виды создаваемых объектов с помощью экземпляра-прототипа и создает новые объекты путем копирования
- 36. Прототип (Prototype), диаграмма классов
- 37. Прототип (Prototype), замечания Каждый подкласс Prototype должен реализовывать метод Clone() В .NET FCL существует интерфейс IClonable,
- 38. Строитель (Builder), задача Отделяет конструирование сложного объекта от его представления, так что в результате одного и
- 39. Строитель (Builder), диаграмма классов
- 40. Строитель (Builder), диаграмма взаимодействия
- 41. Одиночка (Singleton), задача Используется, чтобы гарантировать единственность экземпляра класса Например, в системе может быть много принтеров,
- 42. Одиночка (Singleton), диаграмма классов
- 43. Одиночка (Singleton), пример кода public class Singleton { private static Singleton instance; private int singletonData=10; protected
- 44. Одиночка (Singleton), замечания С помощью данного паттерна могут быть реализованы другие, например, абстрактная фабрика, строитель
- 45. Структурные паттерны Адаптер (Adapter) Декоратор (Decorator) Заместитель (Proxy) Компоновщик (Composite) Мост (Bridge) Приспособленец (Flyweight) Фасад (Facade)
- 46. Адаптер (Adapter), задача Преобразует интерфейс одного класса в интерфейс другого, который ожидают клиенты Адаптер обеспечивает совместную
- 47. Адаптер (Adapter), диаграмма классов 1-ый вариант (адаптер объекта) – композиция объектов 2-ой вариант (адаптер класса) –
- 48. Адаптер (Adapter), пример: TextReader, StreamReader, Stream из FCL TextReader – Target string ReadLine() string ReadToEnd() StreamReader
- 49. Мост (Bridge), задача Отделить абстракцию от ее реализации так, чтобы то и другое можно было изменять
- 50. Мост (Bridge), диаграмма классов
- 51. Мост (Bridge), пример с графическими библиотеками
- 52. Мост (Bridge), замечания Конкретная реализация, как правило, будет порождаться одним из порождающих паттернов
- 53. Компоновщик (Composite), задача Компонует объекты в древовидные структуры для представления иерархий часть-целое Позволяет клиентам единообразно трактовать
- 54. Компоновщик (Composite), диаграмма классов
- 55. Компоновщик (Composite), диаграмма объектов
- 56. Декоратор (Decorator), задача Динамически добавляет объекту новые обязанности Является гибкой альтернативой порождению подклассов с целью расширения
- 57. Декоратор (Decorator), диаграмма классов
- 58. Декоратор (Decorator), диаграмма объектов (цепочка декораторов)
- 59. Декоратор (Decorator), пример с полосами прокрутки
- 60. Фасад (Facade), задача Предоставляет унифицированный интерфейс вместо набора интерфейсов некоторой подсистемы Определяет интерфейс более высокого уровня,
- 61. Фасад (Facade), возможная диаграмма классов
- 62. Приспособленец (Flyweight) Использует разделение для эффективной поддержки множества мелких объектов
- 63. Заместитель (Proxy), задача Является суррогатом другого объекта и контролирует доступ к нему Используется в случаях: удаленный
- 64. Заместитель (Proxy), диаграмма классов
- 65. Заместитель (Proxy), диаграмма объектов
- 66. Заместитель и классы UnmutableList, UnmutableMap и т.д. Классы UnmutableList, UnmutableMap и т.д. из 1-го практического задания
- 67. Паттерны поведения Интерпретатор (Interpreter) Итератор (Iterator) Команда (Command) Наблюдатель (Observer) Посетитель (Visitor) Посредник (Mediator) Состояние (State)
- 68. Цепочка обязанностей (Chain of Responsibility), задача Позволяет избежать привязки отправителя запроса к его получателю, давая шанс
- 69. Цепочка обязанностей (Chain of Responsibility), диаграмма классов
- 70. Цепочка обязанностей (Chain of Responsibility), диаграмма объектов Следует учитывать, что объекты, участвующие в паттерне, могут быть
- 71. Цепочка обязанностей (Chain of Responsibility), результаты ослабление связанности дополнительная гибкость при распределении обязанностей между объектами получение
- 72. Команда (Command), задача Инкапсулирует запрос как объект, позволяя тем самым задавать параметры клиентов для обработки соответствующих
- 73. Команда (Command), диаграмма классов
- 74. Команда (Command), диаграмма взаимодействия
- 75. Интерпретатор (Interpreter), задача Для заданного языка определяет представление его грамматики, а также интерпретатор предложений этого языка
- 76. Итератор (Iterator), задача Предоставляет способ последовательного доступа ко всем элементам составного объекта, не раскрывая его внутреннего
- 77. Итератор (Iterator), диаграмма классов
- 78. Итератор (Iterator), возникающие вопросы Кто из участников управляет итерацией? Клиент (внешний или пассивный итератор) Агрегат (внутренний
- 79. Итератор (Iterator), реализация в C# Итераторы могут быть обобщенными - IEnumerable Языковые средства для итерации по
- 80. Посредник (Mediator), задача Определяет объект, инкапсулирующий способ взаимодействия множества объектов Посредник обеспечивает слабую связанность системы, избавляя
- 81. Посредник (Mediator), диаграмма классов
- 82. Посредник (Mediator), диаграмма объектов
- 83. Посредник (Mediator), пример с диалоговым окном
- 84. Хранитель (Memento), задача Не нарушая инкапсуляции, фиксирует и выносит за пределы объекта его внутреннее состояние так,
- 85. Хранитель (Memento), диаграмма классов
- 86. Хранитель (Memento), диаграмма взаимодействия
- 87. Хранитель (Memento), Реализация в .NET Часто вместо паттерна Хранитель можно использовать механизм сериализации/десериализации
- 88. Наблюдатель (Observer), задача Определяет зависимость типа «один ко многим» между объектами таким образом, что при изменении
- 89. Наблюдатель (Observer), диаграмма классов
- 90. Наблюдатель (Observer), диаграмма взаимодействия
- 93. Скачать презентацию


























































































Организация бизнеса по внедрению корпоративного IT-решения катализатор бизнеса
Презентация на тему РОМБ
Австралия и океания
“Формирование информационной и коммуникативной компетентностей учащихся в процессе изучения истории на ступени профильного обу
Территориальная организация местного самоуправления
Презентация на тему Закон Архимеда
Свойства комплексных соединений
Justrooflife
Некоммерческая организация Достойное отцовство
Анализ эпизода литературного произведения
Патент – средство реализации бизнес-плана
Мир вокруг большой и разный
Народы. Страны мира
Неопределенные местоимения
Применение новых образовательных технологий в 1 ступени МОУ Крюковской оош.
Море и его обитатели
Физиология бактерий. Питательные среды
Географический кружок. Региональный этап ВсОШ по географии. Регламент
Реформа армии и военного управления Петра I
Презентация на тему Положительные и отрицательные числа
История возникновения часов
Способы складывания салфеток для сервировки
Презентация на тему Глобальное потепление
Использование метода проектов на уроках информатики для развития творческой личности учащихся
Закон уплотнения. Компрессионная зависимость
Презентация на тему Решение задач на применение аксиом стереометрии и их следствий
Западный и Восточный типы культуры
Библиотека представляет выставку домашних животных «Друг Сердечный»