🗊 Презентация Принцип единственной обязанности. Адаптер. Принцип разделения интерфейсов

Нажмите для полного просмотра!
Принцип единственной обязанности. Адаптер. Принцип разделения интерфейсов, слайд №1 Принцип единственной обязанности. Адаптер. Принцип разделения интерфейсов, слайд №2 Принцип единственной обязанности. Адаптер. Принцип разделения интерфейсов, слайд №3 Принцип единственной обязанности. Адаптер. Принцип разделения интерфейсов, слайд №4 Принцип единственной обязанности. Адаптер. Принцип разделения интерфейсов, слайд №5 Принцип единственной обязанности. Адаптер. Принцип разделения интерфейсов, слайд №6 Принцип единственной обязанности. Адаптер. Принцип разделения интерфейсов, слайд №7 Принцип единственной обязанности. Адаптер. Принцип разделения интерфейсов, слайд №8 Принцип единственной обязанности. Адаптер. Принцип разделения интерфейсов, слайд №9 Принцип единственной обязанности. Адаптер. Принцип разделения интерфейсов, слайд №10 Принцип единственной обязанности. Адаптер. Принцип разделения интерфейсов, слайд №11 Принцип единственной обязанности. Адаптер. Принцип разделения интерфейсов, слайд №12 Принцип единственной обязанности. Адаптер. Принцип разделения интерфейсов, слайд №13 Принцип единственной обязанности. Адаптер. Принцип разделения интерфейсов, слайд №14 Принцип единственной обязанности. Адаптер. Принцип разделения интерфейсов, слайд №15 Принцип единственной обязанности. Адаптер. Принцип разделения интерфейсов, слайд №16 Принцип единственной обязанности. Адаптер. Принцип разделения интерфейсов, слайд №17 Принцип единственной обязанности. Адаптер. Принцип разделения интерфейсов, слайд №18 Принцип единственной обязанности. Адаптер. Принцип разделения интерфейсов, слайд №19 Принцип единственной обязанности. Адаптер. Принцип разделения интерфейсов, слайд №20 Принцип единственной обязанности. Адаптер. Принцип разделения интерфейсов, слайд №21 Принцип единственной обязанности. Адаптер. Принцип разделения интерфейсов, слайд №22 Принцип единственной обязанности. Адаптер. Принцип разделения интерфейсов, слайд №23 Принцип единственной обязанности. Адаптер. Принцип разделения интерфейсов, слайд №24

Содержание

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

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


Слайд 1


Осенний семестр 2017 Преподаватель: асс. каф. Чуканов В.С
Описание слайда:
Осенний семестр 2017 Преподаватель: асс. каф. Чуканов В.С

Слайд 2


Содержание Принцип единственной обязанности Адаптер Соединение интерфейсов Адаптер класса и адаптер объекта Применение адаптера Принцип разделения...
Описание слайда:
Содержание Принцип единственной обязанности Адаптер Соединение интерфейсов Адаптер класса и адаптер объекта Применение адаптера Принцип разделения интерфейсов Заключение

Слайд 3


Принцип Единственной Обязанности АТД – абстрактный тип данных Замкнутое множество данные + методы Single Responsibility Principle (SRP) Класс должен...
Описание слайда:
Принцип Единственной Обязанности АТД – абстрактный тип данных Замкнутое множество данные + методы Single Responsibility Principle (SRP) Класс должен иметь лишь одну причину для изменения Обязанность = ось изменения Атомарный набор методы + данные = АТД Принцип SRP: каждый класс реализует 1 АТД

Слайд 4


SRP: Пример Rectangle Rectangle Используется для расчета площади и визуализации Две обязанности = 2 АТД Какие проблемы это может вызвать?
Описание слайда:
SRP: Пример Rectangle Rectangle Используется для расчета площади и визуализации Две обязанности = 2 АТД Какие проблемы это может вызвать?

Слайд 5


SRP: Решение Примера Rectangle Избыточная связь между приложениями выч. геом и визуализации Изменение в модуле выч. геом могло привести к...
Описание слайда:
SRP: Решение Примера Rectangle Избыточная связь между приложениями выч. геом и визуализации Изменение в модуле выч. геом могло привести к необходимости пересобирать модуль визуализации Решение: разделить обязанности Rectangle по двум классам

Слайд 6


SRP: Пример Modem Modem Интерфейс сетевого взаимодействия
Описание слайда:
SRP: Пример Modem Modem Интерфейс сетевого взаимодействия

Слайд 7


SRP: Пример Modem Разделение обязанностей не всегда является необходимым Особенности оборудования/ОС могут обуславливать слияние обязанностей в одном...
Описание слайда:
SRP: Пример Modem Разделение обязанностей не всегда является необходимым Особенности оборудования/ОС могут обуславливать слияние обязанностей в одном классе Определяется постановкой задачи и возможностью изменения обязанностей независимо Разделение обязанностей может быть реализовано с помощью паттернов Фасад (Facade) и Заместитель (Proxy)

Слайд 8


Шаблон Проектирования: Адаптер Позволяет повторно использовать реализованную функциональность при несовместимых интерфейсах Технически –...
Описание слайда:
Шаблон Проектирования: Адаптер Позволяет повторно использовать реализованную функциональность при несовместимых интерфейсах Технически – переадресация вызова от одного интерфейса к другому Пример Имеется реализованный в библиотеке класс для генерации случайных, равномерно распределенных чисел в интервале [0, 1] Необходимо написать класс для генерации чисел в интервале [0, 100]

Слайд 9


Пример Адаптера: Код Библиотечных Классов
Описание слайда:
Пример Адаптера: Код Библиотечных Классов

Слайд 10


Пример Адаптера: Код Библиотечных Классов (2)
Описание слайда:
Пример Адаптера: Код Библиотечных Классов (2)

Слайд 11


Пример Адаптера: Код Целевого Класса Решение Объявляем интерфейс класса для генерации чисел в заданном диапазоне Объявляем виртуальный метод...
Описание слайда:
Пример Адаптера: Код Целевого Класса Решение Объявляем интерфейс класса для генерации чисел в заданном диапазоне Объявляем виртуальный метод getValue() Создаем наследника с реализацией виртуального метода getValue() Реализация может адаптировать как интерфейсный метод, так и быть привязанной к одной выбранной реализации Адаптер объекта VS адаптер класса

Слайд 12


Адаптер: Решение Интерфейс класса
Описание слайда:
Адаптер: Решение Интерфейс класса

Слайд 13


Адаптер Класса Реализация адаптера
Описание слайда:
Адаптер Класса Реализация адаптера

Слайд 14


Адаптер Объекта Реализация адаптера
Описание слайда:
Адаптер Объекта Реализация адаптера

Слайд 15


Принцип Разделения Интерфейсов «Жирные» интерфейсы Состоят из множества несцепленных функций Реализуют более 1 АТД Перегруженные функциями интерфейсы...
Описание слайда:
Принцип Разделения Интерфейсов «Жирные» интерфейсы Состоят из множества несцепленных функций Реализуют более 1 АТД Перегруженные функциями интерфейсы приводят к жесткости, хрупкости и тд Рассмотрим класс Door

Слайд 16


«Загрязнение» Интерфейса Новое требование Новый тип дверей: вызывают сигнал тревоги, если слишком долго открыты Класс TimedDoor Поддержка абстракции...
Описание слайда:
«Загрязнение» Интерфейса Новое требование Новый тип дверей: вызывают сигнал тревоги, если слишком долго открыты Класс TimedDoor Поддержка абстракции TimerClient Класс, реагирующий на истечение времени таймера

Слайд 17


Взаимодействие TimedDoor & Timer
Описание слайда:
Взаимодействие TimedDoor & Timer

Слайд 18


Анализ Door теперь зависит от TimerClient Изначальная абстракция Door не имела подобной зависимости Реализации Door, не требующие отсчета времени,...
Описание слайда:
Анализ Door теперь зависит от TimerClient Изначальная абстракция Door не имела подобной зависимости Реализации Door, не требующие отсчета времени, будут обязаны реализовать метод TimeOut()

Слайд 19


Жесткость и Вязкость Решения Новое требование – регистрация более одного запроса на истечение времени Любое изменение TimerClient повлечет изменения...
Описание слайда:
Жесткость и Вязкость Решения Новое требование – регистрация более одного запроса на истечение времени Любое изменение TimerClient повлечет изменения во всех объектах Door

Слайд 20


Решение: Использование Адаптера Адаптер Разделяет иерархии Door & TimerClient «Транслирует» интерфейс TimerClient в TimedDoor
Описание слайда:
Решение: Использование Адаптера Адаптер Разделяет иерархии Door & TimerClient «Транслирует» интерфейс TimerClient в TimedDoor

Слайд 21


Решение: Использование Адаптера (2)
Описание слайда:
Решение: Использование Адаптера (2)

Слайд 22


Анализ Каждый вызов регистрации запроса на таймер вынуждает создать объект-адаптер DoorTimerAdapter doorAdapter(door); timer->Register(timeOut,...
Описание слайда:
Анализ Каждый вызов регистрации запроса на таймер вынуждает создать объект-адаптер DoorTimerAdapter doorAdapter(door); timer->Register(timeOut, timeOutId, &doorAdapter); Какое еще существует решение?

Слайд 23


Решение: Множественное Наследование
Описание слайда:
Решение: Множественное Наследование

Слайд 24


Заключение Принцип единственной обязанности Каждый класс должен реализовывать лишь одну «ось изменения» Адаптер Паттерн проектирования для улучшения...
Описание слайда:
Заключение Принцип единственной обязанности Каждый класс должен реализовывать лишь одну «ось изменения» Адаптер Паттерн проектирования для улучшения коэф. повторного использования кода Переадресовывает операции одного интерфейса в другой Принцип разделения интерфейсов «Жирные» интерфейсы приводят к вязкости и жесткости Интерфейсы могут быть разделены посредством адаптера или множественного наследования



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