🗊Презентация Введение в паттерны проектирования. (Занятие 13)

Нажмите для полного просмотра!
Введение в паттерны проектирования. (Занятие 13), слайд №1Введение в паттерны проектирования. (Занятие 13), слайд №2Введение в паттерны проектирования. (Занятие 13), слайд №3Введение в паттерны проектирования. (Занятие 13), слайд №4Введение в паттерны проектирования. (Занятие 13), слайд №5Введение в паттерны проектирования. (Занятие 13), слайд №6Введение в паттерны проектирования. (Занятие 13), слайд №7Введение в паттерны проектирования. (Занятие 13), слайд №8Введение в паттерны проектирования. (Занятие 13), слайд №9Введение в паттерны проектирования. (Занятие 13), слайд №10Введение в паттерны проектирования. (Занятие 13), слайд №11Введение в паттерны проектирования. (Занятие 13), слайд №12Введение в паттерны проектирования. (Занятие 13), слайд №13Введение в паттерны проектирования. (Занятие 13), слайд №14Введение в паттерны проектирования. (Занятие 13), слайд №15Введение в паттерны проектирования. (Занятие 13), слайд №16Введение в паттерны проектирования. (Занятие 13), слайд №17Введение в паттерны проектирования. (Занятие 13), слайд №18Введение в паттерны проектирования. (Занятие 13), слайд №19Введение в паттерны проектирования. (Занятие 13), слайд №20Введение в паттерны проектирования. (Занятие 13), слайд №21Введение в паттерны проектирования. (Занятие 13), слайд №22Введение в паттерны проектирования. (Занятие 13), слайд №23Введение в паттерны проектирования. (Занятие 13), слайд №24Введение в паттерны проектирования. (Занятие 13), слайд №25Введение в паттерны проектирования. (Занятие 13), слайд №26Введение в паттерны проектирования. (Занятие 13), слайд №27Введение в паттерны проектирования. (Занятие 13), слайд №28Введение в паттерны проектирования. (Занятие 13), слайд №29Введение в паттерны проектирования. (Занятие 13), слайд №30Введение в паттерны проектирования. (Занятие 13), слайд №31Введение в паттерны проектирования. (Занятие 13), слайд №32Введение в паттерны проектирования. (Занятие 13), слайд №33Введение в паттерны проектирования. (Занятие 13), слайд №34Введение в паттерны проектирования. (Занятие 13), слайд №35Введение в паттерны проектирования. (Занятие 13), слайд №36Введение в паттерны проектирования. (Занятие 13), слайд №37Введение в паттерны проектирования. (Занятие 13), слайд №38Введение в паттерны проектирования. (Занятие 13), слайд №39Введение в паттерны проектирования. (Занятие 13), слайд №40Введение в паттерны проектирования. (Занятие 13), слайд №41Введение в паттерны проектирования. (Занятие 13), слайд №42Введение в паттерны проектирования. (Занятие 13), слайд №43Введение в паттерны проектирования. (Занятие 13), слайд №44Введение в паттерны проектирования. (Занятие 13), слайд №45Введение в паттерны проектирования. (Занятие 13), слайд №46Введение в паттерны проектирования. (Занятие 13), слайд №47Введение в паттерны проектирования. (Занятие 13), слайд №48Введение в паттерны проектирования. (Занятие 13), слайд №49Введение в паттерны проектирования. (Занятие 13), слайд №50Введение в паттерны проектирования. (Занятие 13), слайд №51

Содержание

Вы можете ознакомиться и скачать презентацию на тему Введение в паттерны проектирования. (Занятие 13). Доклад-сообщение содержит 51 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Введение в паттерны проектирования
Описание слайда:
Введение в паттерны проектирования

Слайд 2





План лекции
Повторное использование кода
Паттерны проектирования
Порождающие паттерны
Singleton
Factory Method
Структурные паттерны
Adapter
Decorator
Proxy
Паттерны поведения
Iterator
Observer
Описание слайда:
План лекции Повторное использование кода Паттерны проектирования Порождающие паттерны Singleton Factory Method Структурные паттерны Adapter Decorator Proxy Паттерны поведения Iterator Observer

Слайд 3





Повторное использование кода
Использование кода 
существующих приложений 
для создания новых приложений
Принципы создания хорошего 
повторно используемого кода
Модульность (modularity)
Слабая связность (low coupling)
Высокая сфокусированность (high cohesion)
Сокрытие информации (information hiding)
Разделение ответственности (separation of concerns)
Примеры повторного использования
«Копипаста» (copy-and-paste)
Библиотеки (software libraries)
Паттерны проектирования (design patterns)
Фреймворки (software frameworks)
Описание слайда:
Повторное использование кода Использование кода существующих приложений для создания новых приложений Принципы создания хорошего повторно используемого кода Модульность (modularity) Слабая связность (low coupling) Высокая сфокусированность (high cohesion) Сокрытие информации (information hiding) Разделение ответственности (separation of concerns) Примеры повторного использования «Копипаста» (copy-and-paste) Библиотеки (software libraries) Паттерны проектирования (design patterns) Фреймворки (software frameworks)

Слайд 4





Механизмы повторного использования в ООП
Наследование
Повторное использование родительского типа и/или реализации
Определяется статически
Нарушает инкапсуляцию
Композиция
Повторное использование кода используемых классов
Определяется динамически
Решение представляет собой совокупность взаимодействующих объектов и может быть изменено путём замены объекта
Шаблоны
Повторное использование реализации с частичным нарушением типа
Определяется статически
Типы и объекты требуют спецификации типов-параметров
Описание слайда:
Механизмы повторного использования в ООП Наследование Повторное использование родительского типа и/или реализации Определяется статически Нарушает инкапсуляцию Композиция Повторное использование кода используемых классов Определяется динамически Решение представляет собой совокупность взаимодействующих объектов и может быть изменено путём замены объекта Шаблоны Повторное использование реализации с частичным нарушением типа Определяется статически Типы и объекты требуют спецификации типов-параметров

Слайд 5





Делегирование
Один объект в части 
своей реализации полагается 
на другой объект
Средство обеспечения композиции
Программа становится тяжелее для понимания
При написании кода предпочитайте композицию наследованию класса
Описание слайда:
Делегирование Один объект в части своей реализации полагается на другой объект Средство обеспечения композиции Программа становится тяжелее для понимания При написании кода предпочитайте композицию наследованию класса

Слайд 6





Рекомендации по написанию повторно-используемого кода
Программируйте в соответствии 
с интерфейсом, а не реализацией
Не объявляйте переменные как экземпляры конкретных классов. Вместо этого придерживайтесь интерфейса, определенного абстрактным типом
Создавая в системе объекты конкретных классов, используйте порождающие паттерны проектирования
Описание слайда:
Рекомендации по написанию повторно-используемого кода Программируйте в соответствии с интерфейсом, а не реализацией Не объявляйте переменные как экземпляры конкретных классов. Вместо этого придерживайтесь интерфейса, определенного абстрактным типом Создавая в системе объекты конкретных классов, используйте порождающие паттерны проектирования

Слайд 7





Причины перепроектирования
При создании объекта явно указывается класс
Зависимость от конкретных операций
Зависимость от аппаратной и программной платформ
Зависимость от представления или реализации объекта
Зависимость от алгоритмов
Сильная связанность
Расширение функциональности за счет порождения подклассов
Описание слайда:
Причины перепроектирования При создании объекта явно указывается класс Зависимость от конкретных операций Зависимость от аппаратной и программной платформ Зависимость от представления или реализации объекта Зависимость от алгоритмов Сильная связанность Расширение функциональности за счет порождения подклассов

Слайд 8





Фреймворки
Фреймворк (Framework, каркас) – это набор взаимодействующих классов, составляющих повторно используемое проектное решение для конкретного класса программ
Диктует определенную структуру приложения или модуля
Определяет общую структуру,
 ее разделение на классы 
и объекты, основные 
функции тех и других, 
методы взаимодействия 
потоков и классов, потоки 
управления
Описание слайда:
Фреймворки Фреймворк (Framework, каркас) – это набор взаимодействующих классов, составляющих повторно используемое проектное решение для конкретного класса программ Диктует определенную структуру приложения или модуля Определяет общую структуру, ее разделение на классы и объекты, основные функции тех и других, методы взаимодействия потоков и классов, потоки управления

Слайд 9





Паттерны проектирования
Паттерн проектирования 
(Design Pattern, 
образец проектирования, 
шаблон проектирования) – 
описание взаимодействия 
объектов и классов, 
адаптированных для решения 
общей задачи проектирования 
в конкретном контексте
Паттерн проектирования 
именует, абстрагирует 
и идентифицирует ключевые 
аспекты структуры общего 
решения, которые и позволяют 
применить его для создания 
повторно используемого 
проектного решения
Описание слайда:
Паттерны проектирования Паттерн проектирования (Design Pattern, образец проектирования, шаблон проектирования) – описание взаимодействия объектов и классов, адаптированных для решения общей задачи проектирования в конкретном контексте Паттерн проектирования именует, абстрагирует и идентифицирует ключевые аспекты структуры общего решения, которые и позволяют применить его для создания повторно используемого проектного решения

Слайд 10





Паттерны в ООП
Результат проектирования на уровне ООП – распределение ответственностей и активностей по классам
Паттерн – именованная конфигурация распределения ответственности по классам
Описание слайда:
Паттерны в ООП Результат проектирования на уровне ООП – распределение ответственностей и активностей по классам Паттерн – именованная конфигурация распределения ответственности по классам

Слайд 11





Фреймворки vs Паттерны
Паттерны проектирования более абстрактны, чем фреймворки
Как архитектурные элементы паттерны проектирования мельче, чем фреймворки
Паттерны проектирования менее специализированны, чем фреймворки
Описание слайда:
Фреймворки vs Паттерны Паттерны проектирования более абстрактны, чем фреймворки Как архитектурные элементы паттерны проектирования мельче, чем фреймворки Паттерны проектирования менее специализированны, чем фреймворки

Слайд 12





Описания паттернов
GoF
Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides (1995). Design Patterns: Elements of Reusable Object-Oriented Software
POSA1
Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad (1996). Pattern-Oriented Software Architecture, Volume 1: A System of Patterns
POSA2
Douglas Schmidt, Michael Stal, Hans Rohnert, Frank Buschmann (2000). Pattern-Oriented Software Architecture, Volume 2: Patterns for Concurrent and Networked Objects
PoEAA
Martin Fowler (2002). Patterns of Enterprise Application Architecture
…
Описание слайда:
Описания паттернов GoF Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides (1995). Design Patterns: Elements of Reusable Object-Oriented Software POSA1 Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad (1996). Pattern-Oriented Software Architecture, Volume 1: A System of Patterns POSA2 Douglas Schmidt, Michael Stal, Hans Rohnert, Frank Buschmann (2000). Pattern-Oriented Software Architecture, Volume 2: Patterns for Concurrent and Networked Objects PoEAA Martin Fowler (2002). Patterns of Enterprise Application Architecture …

Слайд 13





Порождающие паттерны
Abstract Factory – Абстрактная фабрика 
Builder – Строитель
Factory Method – Фабричный метод
Prototype – Прототип
Singleton – Одиночка
Описание слайда:
Порождающие паттерны Abstract Factory – Абстрактная фабрика Builder – Строитель Factory Method – Фабричный метод Prototype – Прототип Singleton – Одиночка

Слайд 14





Singleton
Название и классификация
Одиночка – паттерн, порождающий объекты
Назначение
Гарантирует, что у класса есть только один
экземпляр, и предоставляет к нему 
глобальную точку доступа
Применимость
Должен быть ровно один экземпляр некоторого класса, легко доступный всем клиентам
Единственный экземпляр должен расширяться путем порождения подклассов, и клиентам нужно иметь возможность работать с расширенным экземпляром без модификации своего кода
Описание слайда:
Singleton Название и классификация Одиночка – паттерн, порождающий объекты Назначение Гарантирует, что у класса есть только один экземпляр, и предоставляет к нему глобальную точку доступа Применимость Должен быть ровно один экземпляр некоторого класса, легко доступный всем клиентам Единственный экземпляр должен расширяться путем порождения подклассов, и клиентам нужно иметь возможность работать с расширенным экземпляром без модификации своего кода

Слайд 15





Singleton: структура
Структура
Участники
Singleton – одиночка, Определяет операцию Instance , которая позволяет клиентам получать доступ к единственному экземпляру
Описание слайда:
Singleton: структура Структура Участники Singleton – одиночка, Определяет операцию Instance , которая позволяет клиентам получать доступ к единственному экземпляру

Слайд 16





Factory Method
Название и классификация
Фабричный метод – паттерн, порождающий объекты
Назначение
Определяет интерфейс для создания объекта, но оставляет подклассам решение о том, какой класс инстанцировать. Фабричный метод позволяет классу делегировать инстанцирование в подклассы
Известен также под именем
Virtual Constructor
Описание слайда:
Factory Method Название и классификация Фабричный метод – паттерн, порождающий объекты Назначение Определяет интерфейс для создания объекта, но оставляет подклассам решение о том, какой класс инстанцировать. Фабричный метод позволяет классу делегировать инстанцирование в подклассы Известен также под именем Virtual Constructor

Слайд 17





Factory Method
Мотивация
Описание слайда:
Factory Method Мотивация

Слайд 18





Factory Method
Применимость
Используйте паттерн фабричный метод, когда:
классу заранее неизвестно, объекты каких классов ему нужно создавать
класс спроектирован так, чтобы объекты, которые он создает, специфицировались подклассами
класс делегирует свои обязанности одному из нескольких вспомогательных подклассов, и вы планируете локализовать знание о том, какой класс принимает эти обязанности на себя
Описание слайда:
Factory Method Применимость Используйте паттерн фабричный метод, когда: классу заранее неизвестно, объекты каких классов ему нужно создавать класс спроектирован так, чтобы объекты, которые он создает, специфицировались подклассами класс делегирует свои обязанности одному из нескольких вспомогательных подклассов, и вы планируете локализовать знание о том, какой класс принимает эти обязанности на себя

Слайд 19





Factory Method
Структура
Описание слайда:
Factory Method Структура

Слайд 20





Factory Method
Особенности
Две основных 
разновидности:
класс Сгeator – абстрактный
Creator – конкретный класс, 
в котором по умолчанию 
есть реализация фабричного 
метода
Параметризованные фабричные методы
Описание слайда:
Factory Method Особенности Две основных разновидности: класс Сгeator – абстрактный Creator – конкретный класс, в котором по умолчанию есть реализация фабричного метода Параметризованные фабричные методы

Слайд 21





Структурные паттерны
Описание слайда:
Структурные паттерны

Слайд 22





Adapter
Название и классификация
Адаптер – паттерн, структурирующий классы и объекты
Назначение
Преобразует интерфейс одного класса в интерфейс другого, который ожидают
клиенты. Адаптер обеспечивает 
совместную работу классов 
с несовместимыми интерфейсами, 
которая без него была бы невозможна
Известен также под именем
Wrapper
Описание слайда:
Adapter Название и классификация Адаптер – паттерн, структурирующий классы и объекты Назначение Преобразует интерфейс одного класса в интерфейс другого, который ожидают клиенты. Адаптер обеспечивает совместную работу классов с несовместимыми интерфейсами, которая без него была бы невозможна Известен также под именем Wrapper

Слайд 23





Adapter
Применимость
Применяйте адаптер классов, когда: 
хотите использовать существующий класс, но его интерфейс не соответствует вашим потребностям
собираетесь создать повторно используемый класс, который должен взаимодействовать с заранее неизвестными или не связанными с ним классами, имеющими несовместимые интерфейсы
Применяйте адаптер объектов, когда 
нужно использовать несколько существующих подклассов, но непрактично адаптировать их интерфейсы путем порождения новых подклассов от каждого. В этом случае адаптер объектов может приспосабливать интерфейс их общего родительского класса
Описание слайда:
Adapter Применимость Применяйте адаптер классов, когда: хотите использовать существующий класс, но его интерфейс не соответствует вашим потребностям собираетесь создать повторно используемый класс, который должен взаимодействовать с заранее неизвестными или не связанными с ним классами, имеющими несовместимые интерфейсы Применяйте адаптер объектов, когда нужно использовать несколько существующих подклассов, но непрактично адаптировать их интерфейсы путем порождения новых подклассов от каждого. В этом случае адаптер объектов может приспосабливать интерфейс их общего родительского класса

Слайд 24





Adapter (класса)
Неприменим, если требуется адаптировать не только конкретный класс, но и его подклассы
Возможно изменение в адаптере операций адаптируемого класса
Вводится только один объект (непосредственно адаптера)
Описание слайда:
Adapter (класса) Неприменим, если требуется адаптировать не только конкретный класс, но и его подклассы Возможно изменение в адаптере операций адаптируемого класса Вводится только один объект (непосредственно адаптера)

Слайд 25





Adapter (объекта)
Один адаптер может работать со множеством адаптируемых объектов, включая объекты подклассов
Затруднено замещение операций адаптируемого класса
Описание слайда:
Adapter (объекта) Один адаптер может работать со множеством адаптируемых объектов, включая объекты подклассов Затруднено замещение операций адаптируемого класса

Слайд 26





Decorator
Название и классификация
Декоратор – паттерн, структурирующий объекты
Назначение
Динамически добавляет объекту новые обязанности. Является гибкой альтернативой порождению подклассов с целью расширения функциональности
Известен также под именем
Wrapper
Описание слайда:
Decorator Название и классификация Декоратор – паттерн, структурирующий объекты Назначение Динамически добавляет объекту новые обязанности. Является гибкой альтернативой порождению подклассов с целью расширения функциональности Известен также под именем Wrapper

Слайд 27





Decorator
Мотивация
Описание слайда:
Decorator Мотивация

Слайд 28





Decorator
Применимость
Используйте паттерн декоратор:
для динамического, прозрачного для клиентов добавления обязанностей объектам
для реализации обязанностей, которые могут быть сняты с объекта
когда расширение путем порождения подклассов по каким-то причинам неудобно или невозможно
Описание слайда:
Decorator Применимость Используйте паттерн декоратор: для динамического, прозрачного для клиентов добавления обязанностей объектам для реализации обязанностей, которые могут быть сняты с объекта когда расширение путем порождения подклассов по каким-то причинам неудобно или невозможно

Слайд 29





Decorator
Структура
Описание слайда:
Decorator Структура

Слайд 30





Decorator
Особенности
Большая гибкость, чем у статического наследования
Создание цепочек декораторов, в том числе из одних и тех же в одной цепочке
Позволяет избежать перегруженных функциями классов на верхних уровнях иерархии
Декоратор и его компонент не идентичны
Множество мелких объектов
Описание слайда:
Decorator Особенности Большая гибкость, чем у статического наследования Создание цепочек декораторов, в том числе из одних и тех же в одной цепочке Позволяет избежать перегруженных функциями классов на верхних уровнях иерархии Декоратор и его компонент не идентичны Множество мелких объектов

Слайд 31





Decorator
Особенности
Соответствие интерфейсов декоратора и декорируемого объекта
Возможное отсутствие абстрактного класса декоратора
Облегчение, по возможности,
 декорируемого класса
Изменяется «облик», 
а не внутренне 
устройство объекта
Описание слайда:
Decorator Особенности Соответствие интерфейсов декоратора и декорируемого объекта Возможное отсутствие абстрактного класса декоратора Облегчение, по возможности, декорируемого класса Изменяется «облик», а не внутренне устройство объекта

Слайд 32





Proxy
Название и классификация
Заместитель – паттерн, структурирующий объекты
Назначение
Является суррогатом 
другого объекта 
и контролирует доступ 
к нему
Известен также под именем
Surrogate
Описание слайда:
Proxy Название и классификация Заместитель – паттерн, структурирующий объекты Назначение Является суррогатом другого объекта и контролирует доступ к нему Известен также под именем Surrogate

Слайд 33





Proxy
Мотивация
Применимость
Заместитель применим во всех случаях, когда возникает необходимость сослаться на объект более изощренно, чем это возможно, если использовать простую ссылку
Описание слайда:
Proxy Мотивация Применимость Заместитель применим во всех случаях, когда возникает необходимость сослаться на объект более изощренно, чем это возможно, если использовать простую ссылку

Слайд 34





Proxy
Применимость
Удаленный заместитель 
предоставляет локального представителя вместо объекта, находящегося в другом адресном пространстве
Виртуальный заместитель 
создает тяжелые объекты по требованию
Защищающий заместитель 
контролирует доступ к исходному объекту
Описание слайда:
Proxy Применимость Удаленный заместитель предоставляет локального представителя вместо объекта, находящегося в другом адресном пространстве Виртуальный заместитель создает тяжелые объекты по требованию Защищающий заместитель контролирует доступ к исходному объекту

Слайд 35





Proxy
Применимость
Умная ссылка 
замена обычного указателя:
подсчет числа ссылок на реальный объект
загрузка объекта в память при первом обращении к нему
проверка и установка блокировки на реальный объект при обращении к нему, чтобы никакой другой объект не смог в это время изменить его
Описание слайда:
Proxy Применимость Умная ссылка замена обычного указателя: подсчет числа ссылок на реальный объект загрузка объекта в память при первом обращении к нему проверка и установка блокировки на реальный объект при обращении к нему, чтобы никакой другой объект не смог в это время изменить его

Слайд 36





Proxy
Структура
Описание слайда:
Proxy Структура

Слайд 37





Паттерны поведения
Описание слайда:
Паттерны поведения

Слайд 38





Паттерны поведения
Описание слайда:
Паттерны поведения

Слайд 39





Iterator
Название и классификация
Итератор – паттерн поведения объектов
Назначение
Предоставляет способ последовательного доступа ко всем элементам составного объекта, не раскрывая его внутреннего представления
Известен также под именем
Cursor
Описание слайда:
Iterator Название и классификация Итератор – паттерн поведения объектов Назначение Предоставляет способ последовательного доступа ко всем элементам составного объекта, не раскрывая его внутреннего представления Известен также под именем Cursor

Слайд 40





Iterator
Мотивация
Описание слайда:
Iterator Мотивация

Слайд 41





Iterator
Применимость
Используйте итератор:
Для доступа к содержимому агрегированных объектов без раскрытия их внутреннего представления
Для поддержки нескольких активных обходов одного и того же агрегированного объекта
Для предоставления единообразного интерфейса с целью обхода различных агрегированных структур (для поддержки полиморфной итерации)
Описание слайда:
Iterator Применимость Используйте итератор: Для доступа к содержимому агрегированных объектов без раскрытия их внутреннего представления Для поддержки нескольких активных обходов одного и того же агрегированного объекта Для предоставления единообразного интерфейса с целью обхода различных агрегированных структур (для поддержки полиморфной итерации)

Слайд 42





Iterator
Структура
Описание слайда:
Iterator Структура

Слайд 43





Iterator
Особенности
Поддерживает различные виды обхода агрегата
Итераторы упрощают интерфейс класса-агрегата
Одновременно для данного агрегата может быть активно несколько обходов
Реализация
Какой участник управляет итерацией?
Внутренний
Внешний
Насколько итератор устойчив?
Дополнительные операции итератора
Описание слайда:
Iterator Особенности Поддерживает различные виды обхода агрегата Итераторы упрощают интерфейс класса-агрегата Одновременно для данного агрегата может быть активно несколько обходов Реализация Какой участник управляет итерацией? Внутренний Внешний Насколько итератор устойчив? Дополнительные операции итератора

Слайд 44





Observer
Название и классификация
Наблюдатель – паттерн поведения
объектов
Назначение
Определяет зависимость типа 
“один ко многим” между объектами 
таким образом, что при изменении состояния одного объекта все зависящие от него оповещаются об этом и автоматически обновляются
Известен также под именем 
Dependents, Publish-Subscribe, Listener
Описание слайда:
Observer Название и классификация Наблюдатель – паттерн поведения объектов Назначение Определяет зависимость типа “один ко многим” между объектами таким образом, что при изменении состояния одного объекта все зависящие от него оповещаются об этом и автоматически обновляются Известен также под именем Dependents, Publish-Subscribe, Listener

Слайд 45





Observer
Применимость
Когда у абстракции есть два аспекта, один из которых зависит от другого. Инкапсуляции этих аспектов в разные объекты позволяют изменять и повторно использовать их независимо.
Когда при модификации одного объекта требуется изменить другие и вы не знаете, сколько именно объектов нужно изменить.
Когда один объект должен оповещать других, не делая предположений об уведомляемых объектах. Другими словами, вы не хотите, чтобы объекты были тесно связаны между собой.
Описание слайда:
Observer Применимость Когда у абстракции есть два аспекта, один из которых зависит от другого. Инкапсуляции этих аспектов в разные объекты позволяют изменять и повторно использовать их независимо. Когда при модификации одного объекта требуется изменить другие и вы не знаете, сколько именно объектов нужно изменить. Когда один объект должен оповещать других, не делая предположений об уведомляемых объектах. Другими словами, вы не хотите, чтобы объекты были тесно связаны между собой.

Слайд 46





Observer
Структура
Описание слайда:
Observer Структура

Слайд 47





Observer
Отношения
Описание слайда:
Observer Отношения

Слайд 48





Observer
Результаты
Абстрактная связанность субъекта и наблюдателя
Поддержка широковещательных коммуникаций
Неожиданные обновления
Простой протокол обновления не содержит никаких сведений о том, что именно изменилось в субъекте
Описание слайда:
Observer Результаты Абстрактная связанность субъекта и наблюдателя Поддержка широковещательных коммуникаций Неожиданные обновления Простой протокол обновления не содержит никаких сведений о том, что именно изменилось в субъекте

Слайд 49





Observer
Реализация
Отображение субъектов на наблюдателей
Наблюдение более чем за одним субъектом
Инициатор обновления
Модели вытягивания и проталкивания
Явное специфицирование представляющих интерес модификаций
Описание слайда:
Observer Реализация Отображение субъектов на наблюдателей Наблюдение более чем за одним субъектом Инициатор обновления Модели вытягивания и проталкивания Явное специфицирование представляющих интерес модификаций

Слайд 50





Спасибо за внимание!
Описание слайда:
Спасибо за внимание!

Слайд 51





Дополнительные источники
Гамма, Э. Приемы объектно-ориентированного проектирования. Паттерны проектирования [Текст] / Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес. – СПб. : Питер, 2007. – 366 с.
Фримен, Э. Паттерны проектирования [Текст] / Эрик Фримен, Элизабет Робсон, Берт Бейтс, Кэти Сьерра. – СПб. : Питер, 2011. – 656 с.
Обзор паттернов проектирования [Электронный ресурс]. – Режим доступа: http://citforum.ru/SE/project/pattern/index.shtml, дата доступа: 21.10.2011.
Объектно-ориентированное проектирование, паттерны проектирования (шаблоны)  [Электронный ресурс]. – Режим доступа: http://www.javenue.info/themes/ood/, дата доступа: 21.10.2011.
Обзор паттернов проектирования [Электронный ресурс]. – Режим доступа: http://www.firststeps.ru/theory/patt/pattern1.html, дата доступа: 21.10.2011.
Описание слайда:
Дополнительные источники Гамма, Э. Приемы объектно-ориентированного проектирования. Паттерны проектирования [Текст] / Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес. – СПб. : Питер, 2007. – 366 с. Фримен, Э. Паттерны проектирования [Текст] / Эрик Фримен, Элизабет Робсон, Берт Бейтс, Кэти Сьерра. – СПб. : Питер, 2011. – 656 с. Обзор паттернов проектирования [Электронный ресурс]. – Режим доступа: http://citforum.ru/SE/project/pattern/index.shtml, дата доступа: 21.10.2011. Объектно-ориентированное проектирование, паттерны проектирования (шаблоны) [Электронный ресурс]. – Режим доступа: http://www.javenue.info/themes/ood/, дата доступа: 21.10.2011. Обзор паттернов проектирования [Электронный ресурс]. – Режим доступа: http://www.firststeps.ru/theory/patt/pattern1.html, дата доступа: 21.10.2011.



Похожие презентации
Mypresentation.ru
Загрузить презентацию