Оцените презентацию от 1 до 5 баллов!
Тип файла:
ppt / pptx (powerpoint)
Всего слайдов:
51 слайд
Для класса:
1,2,3,4,5,6,7,8,9,10,11
Размер файла:
324.29 kB
Просмотров:
99
Скачиваний:
7
Автор:
неизвестен
Слайды и текст к этой презентации:
№1 слайд![Структурные паттерны](/documents_6/8e4b2e207aa494e3330632540160048c/img0.jpg)
Содержание слайда: Структурные паттерны
№2 слайд![Структурные паттерны](/documents_6/8e4b2e207aa494e3330632540160048c/img1.jpg)
Содержание слайда: Структурные паттерны
№3 слайд![Паттерн Adapter](/documents_6/8e4b2e207aa494e3330632540160048c/img2.jpg)
Содержание слайда: Паттерн Adapter
№4 слайд![UML-диаграмма классов](/documents_6/8e4b2e207aa494e3330632540160048c/img3.jpg)
Содержание слайда: UML-диаграмма классов паттерна Adapter
№5 слайд![Пример паттерна Adapter](/documents_6/8e4b2e207aa494e3330632540160048c/img4.jpg)
Содержание слайда: Пример паттерна Adapter
№6 слайд![Пример реализации паттерна](/documents_6/8e4b2e207aa494e3330632540160048c/img5.jpg)
Содержание слайда: Пример реализации паттерна Adapter
// Уже существующий класс температурного датчика окружающей среды
class FahrenheitSensor // считаем что этот класс закрыт для изменения, в терминах описания паттерна это Adaptee
{
public:
// Получить показания температуры в градусах Фаренгейта
float getFahrenheitTemp() { float t = 32.0; return t; }
};
class Sensor // в терминах описания паттерна - Target
{
public:
virtual ~Sensor() {}
virtual float getTemperature() = 0; // в терминах описания паттерна request()
};
class Adapter : public Sensor // в терминах описания паттерна - Adapter
{
public:
Adapter(FahrenheitSensor* p) : p_fsensor(p) {}
~Adapter() { delete p_fsensor; }
float getTemperature() { // в терминах описания паттерна — request()
return (p_fsensor->getFahrenheitTemp() - 32.0f)*5.0f / 9.0f;
}
private:
FahrenheitSensor* p_fsensor; // в терминах описания паттерна -adaptee
};
int main()
{
setlocale(LC_ALL, "rus");
Sensor* p = new Adapter(new FahrenheitSensor);
cout << "Температура в градусах: " << p->getTemperature() << endl;
delete p;
}
№7 слайд![Результаты применения](/documents_6/8e4b2e207aa494e3330632540160048c/img6.jpg)
Содержание слайда: Результаты применения паттерна Adapter
№8 слайд![Паттерн Bridge мост](/documents_6/8e4b2e207aa494e3330632540160048c/img7.jpg)
Содержание слайда: Паттерн Bridge (мост)
№9 слайд![Паттерн Bridge мост](/documents_6/8e4b2e207aa494e3330632540160048c/img8.jpg)
Содержание слайда: Паттерн Bridge (мост)
№10 слайд![Пример иерархии на основе](/documents_6/8e4b2e207aa494e3330632540160048c/img9.jpg)
Содержание слайда: Пример иерархии на основе паттерна Bridge
№11 слайд![UML-диаграмма классов](/documents_6/8e4b2e207aa494e3330632540160048c/img10.jpg)
Содержание слайда: UML-диаграмма классов паттерна Bridge
№12 слайд![Описание паттерна Bridge](/documents_6/8e4b2e207aa494e3330632540160048c/img11.jpg)
Содержание слайда: Описание паттерна Bridge
№13 слайд![Пример реализации паттерна](/documents_6/8e4b2e207aa494e3330632540160048c/img12.jpg)
Содержание слайда: Пример реализации паттерна Bridge
№14 слайд![Пример реализации паттерна](/documents_6/8e4b2e207aa494e3330632540160048c/img13.jpg)
Содержание слайда: Пример реализации паттерна Bridge — продолжение
№15 слайд![Пример реализации паттерна](/documents_6/8e4b2e207aa494e3330632540160048c/img14.jpg)
Содержание слайда: Пример реализации паттерна Bridge — продолжение
№16 слайд![Пример реализации паттерна](/documents_6/8e4b2e207aa494e3330632540160048c/img15.jpg)
Содержание слайда: Пример реализации паттерна Bridge
№17 слайд![Пример реализации паттерна](/documents_6/8e4b2e207aa494e3330632540160048c/img16.jpg)
Содержание слайда: Пример реализации паттерна Bridge — продолжение
№18 слайд![Пример реализации паттерна](/documents_6/8e4b2e207aa494e3330632540160048c/img17.jpg)
Содержание слайда: Пример реализации паттерна Bridge — продолжение
№19 слайд![паттерн Bridge](/documents_6/8e4b2e207aa494e3330632540160048c/img18.jpg)
Содержание слайда: паттерн Bridge
№20 слайд![паттерн Компоновщик Composite](/documents_6/8e4b2e207aa494e3330632540160048c/img19.jpg)
Содержание слайда: паттерн Компоновщик (Composite)
№21 слайд![UML-диаграмма классов](/documents_6/8e4b2e207aa494e3330632540160048c/img20.jpg)
Содержание слайда: UML-диаграмма классов паттерна Composite
№22 слайд![Пример использования паттерна](/documents_6/8e4b2e207aa494e3330632540160048c/img21.jpg)
Содержание слайда: Пример использования паттерна Компоновщик (Composite)
№23 слайд![](/documents_6/8e4b2e207aa494e3330632540160048c/img22.jpg)
№24 слайд![](/documents_6/8e4b2e207aa494e3330632540160048c/img23.jpg)
№25 слайд![Пример реализации паттерна](/documents_6/8e4b2e207aa494e3330632540160048c/img24.jpg)
Содержание слайда: Пример реализации паттерна «Компоновщик»
№26 слайд![Пример реализации паттерна](/documents_6/8e4b2e207aa494e3330632540160048c/img25.jpg)
Содержание слайда: Пример реализации паттерна «Компоновщик»
№27 слайд![Результаты применения](/documents_6/8e4b2e207aa494e3330632540160048c/img26.jpg)
Содержание слайда: Результаты применения паттерна Composite
№28 слайд![Паттерн Декоратор Decorator](/documents_6/8e4b2e207aa494e3330632540160048c/img27.jpg)
Содержание слайда: Паттерн Декоратор (Decorator)
№29 слайд![](/documents_6/8e4b2e207aa494e3330632540160048c/img28.jpg)
№30 слайд![Пример реализации паттерна](/documents_6/8e4b2e207aa494e3330632540160048c/img29.jpg)
Содержание слайда: Пример реализации паттерна «Декоратор»
№31 слайд![Пример реализации паттерна](/documents_6/8e4b2e207aa494e3330632540160048c/img30.jpg)
Содержание слайда: Пример реализации паттерна «Декоратор»
№32 слайд![Пример реализации паттерна](/documents_6/8e4b2e207aa494e3330632540160048c/img31.jpg)
Содержание слайда: Пример реализации паттерна «Декоратор»
№33 слайд![Паттерн Декоратор Decorator](/documents_6/8e4b2e207aa494e3330632540160048c/img32.jpg)
Содержание слайда: Паттерн Декоратор (Decorator)
№34 слайд![Паттерн Фасад Facade](/documents_6/8e4b2e207aa494e3330632540160048c/img33.jpg)
Содержание слайда: Паттерн Фасад (Facade)
№35 слайд![UML-диаграмма классов](/documents_6/8e4b2e207aa494e3330632540160048c/img34.jpg)
Содержание слайда: UML-диаграмма классов паттерна Facade
№36 слайд![](/documents_6/8e4b2e207aa494e3330632540160048c/img35.jpg)
№37 слайд![](/documents_6/8e4b2e207aa494e3330632540160048c/img36.jpg)
№38 слайд![](/documents_6/8e4b2e207aa494e3330632540160048c/img37.jpg)
№39 слайд![Паттерн Фасад Facade](/documents_6/8e4b2e207aa494e3330632540160048c/img38.jpg)
Содержание слайда: Паттерн Фасад (Facade)
№40 слайд![Паттерн Приспособленец](/documents_6/8e4b2e207aa494e3330632540160048c/img39.jpg)
Содержание слайда: Паттерн «Приспособленец» (FlyWeight)
№41 слайд![UML-диаграмма классов](/documents_6/8e4b2e207aa494e3330632540160048c/img40.jpg)
Содержание слайда: UML-диаграмма классов паттерна Flyweight
№42 слайд![](/documents_6/8e4b2e207aa494e3330632540160048c/img41.jpg)
№43 слайд![](/documents_6/8e4b2e207aa494e3330632540160048c/img42.jpg)
№44 слайд![](/documents_6/8e4b2e207aa494e3330632540160048c/img43.jpg)
№45 слайд![](/documents_6/8e4b2e207aa494e3330632540160048c/img44.jpg)
№46 слайд![Паттерн Приспособленец](/documents_6/8e4b2e207aa494e3330632540160048c/img45.jpg)
Содержание слайда: Паттерн «Приспособленец» (FlyWeight)
№47 слайд![Паттерн прокси Proxy](/documents_6/8e4b2e207aa494e3330632540160048c/img46.jpg)
Содержание слайда: Паттерн «прокси» (Proxy) (заместитель, суррогат)
Назначение паттерна Proxy:
Паттерн Proxy является суррогатом или замеcтителем другого объекта и контролирует доступ к нему.
Предоставляя дополнительный уровень косвенности при доступе к объекту, может применяться для поддержки распределенного, управляемого или интеллектуального доступа.
Являясь "оберткой" реального компонента, защищает его от излишней сложности.
Решаемая проблема:
Вам нужно управлять ресурсоемкими объектами. Вы не хотите создавать экземпляры таких объектов до момента их реального использования.
Существует четыре ситуации, когда можно использовать паттерн Proxy:
Виртуальный proxy является заместителем объектов, создание которых обходится дорого. Реальный объект создается только при первом запросе/доступе клиента к объекту.
Удаленный proxy предоставляет локального представителя для объекта, который находится в другом адресном пространстве ("заглушки" в RPC).
Защитный proxy контролирует доступ к основному объекту. "Суррогатный" объект предоставляет доступ к реальному объекту, только когда вызывающий объект имеет соответствующие права.
Интеллектуальный proxy выполняет дополнительные действия при доступе к объекту.
Типичные области применения интеллектуальных proxy:
Подсчет числа ссылок на реальный объект. При отсутствии ссылок память под объект автоматически освобождается (известен также как интеллектуальный указатель или smart pointer).
Загрузка объекта в память при первом обращении к нему.
Установка запрета на изменение реального объекта при обращении к нему других объектов.
№48 слайд![UML-диаграмма классов](/documents_6/8e4b2e207aa494e3330632540160048c/img47.jpg)
Содержание слайда: UML-диаграмма классов паттерна Proxy
№49 слайд![](/documents_6/8e4b2e207aa494e3330632540160048c/img48.jpg)
№50 слайд![](/documents_6/8e4b2e207aa494e3330632540160048c/img49.jpg)
№51 слайд![Паттерн прокси Proxy](/documents_6/8e4b2e207aa494e3330632540160048c/img50.jpg)
Содержание слайда: Паттерн «прокси» (Proxy) (заместитель, суррогат)