Содержание
- 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. Скачать презентацию


























































































Особенности управления персоналом на определенном этапе жизненного
«Цифровые камеры»
Зеленика. Здоровый перекус
Литература:
Елизаветинское Барокко
Пример презентации проекта
Противопожарная профилактика
Министерство образования и науки РК Национальный центр образовательной статистики и оценки
Презентация на тему Элементы статистической обработки данных 7 класс
Школа эффективного бюджета студенческого самоуправления
Желейная продукция из вторичного сырья, получаемого при переработке водных биоресурсов
Презентация на тему Новейшее время (4 класс)
Кристиан Жекель (картины)
Political power and state
Искуcство. Живопись. Величайшие художники и их творения. Скульптура
Презентация на тему: Памятник князю Владимиру в г. Белгороде
Позиция автора часть С1
2012 ел - тарихи-мәдәни мирасы елы
К 1800 году сумма человеческих знаний удваивалась каждые 50 лет;К 1950 году она удваивалась каждые 10 лет;К 1970году – каждые 5 лет;В нас
Работа и достижения Муниципального казенного учреждения культуры «Дом культуры»село ГофицкоеПетровского района Ставропольс
Гражданская война И Иностранная интервенция
Праздник победы.
Русский язык
Моя родословная
Гражданская идентичность молодежи
Programmatic реклама и RTB-протокол
AVAN - больше, чем красота
Презентация на тему Радиация и её воздействие на человека