Без темы
<<  Уральский филиал ООО ОИЦ «Академия» Урок математики в 5 классе  >>
Лекция № 3. Уровень служб
Лекция № 3. Уровень служб
Уровень служб
Уровень служб
Уровень служб
Уровень служб
Крайность 1. «Скромный» SL
Крайность 1. «Скромный» SL
Крайность 2. «Толстый» SL
Крайность 2. «Толстый» SL
Модель «контроллер-сущность» (controller-entity)
Модель «контроллер-сущность» (controller-entity)
Лекция 6. Часть 2. Базовые типовые решения
Лекция 6. Часть 2. Базовые типовые решения
Шлюз (Gateway)
Шлюз (Gateway)
Шлюз (Gateway)
Шлюз (Gateway)
Шлюз (Gateway)
Шлюз (Gateway)
Шлюз (Gateway)
Шлюз (Gateway)
Преобразователь (Mapper)
Преобразователь (Mapper)
Преобразователь (Mapper)
Преобразователь (Mapper)
Преобразователь (Mapper)
Преобразователь (Mapper)
Супертип слоя (Layer Supertype)
Супертип слоя (Layer Supertype)
Отделенный интерфейс (Separated Interface)
Отделенный интерфейс (Separated Interface)
Отделенный интерфейс (Separated Interface)
Отделенный интерфейс (Separated Interface)
Отделенный интерфейс (Separated Interface)
Отделенный интерфейс (Separated Interface)
Отделенный интерфейс (Separated Interface)
Отделенный интерфейс (Separated Interface)

Презентация на тему: «Уровень служб». Автор: zmeyev oa. Файл: «Уровень служб.ppt». Размер zip-архива: 164 КБ.

Уровень служб

содержание презентации «Уровень служб.ppt»
СлайдТекст
1 Лекция № 3. Уровень служб

Лекция № 3. Уровень служб

Обсуждение.

2 Уровень служб

Уровень служб

Логика слоя представления взаимодействует с бизнес логикой через слой служб, который выступает в качестве API приложения. Дополнительно – размещение логики управления транзакциями и обеспечение безопасности

3 Уровень служб

Уровень служб

Основная проблема ?определяющее решение: Какая часть функций DM передается на SL?

4 Крайность 1. «Скромный» SL

Крайность 1. «Скромный» SL

SL = промежуточному интерфейсу. Задача этого интерфейса в перенаправлении вызовов из HI объектам лежащим в DM. SL обеспечивает API, ориентированный на определенные варианты использования и предоставляет возможность включить в код функции-оболочки отвечающие еще за что-нибудь. Например, управление транзакциями, проверку безопасности и т.д.

5 Крайность 2. «Толстый» SL

Крайность 2. «Толстый» SL

Большая часть логики в рамках SL реализуется в виде сценариев транзакции. Объекты домена в этом случае могут быть тривиальными. Если при этом используется модель предметной области, то можно обеспечить их однозначное отображение на уровень хранения. Например, применив решение активная запись (Active record)

6 Модель «контроллер-сущность» (controller-entity)

Модель «контроллер-сущность» (controller-entity)

Главная особенность модели: логика, которая относится к отдельным бизнес-транзакциям или вариантам использования, располагается в соответствующих сценариях транзакции (В этом случае их называют контролерами или службами). Сценарии тразакции выполняют роль контроллеров в типовых решениях MVC и контроллер приложения (Application Controller). Функции, характерные для нескольких вариантов использования, передаются объектам сущностям (entities) домена.

7 Лекция 6. Часть 2. Базовые типовые решения

Лекция 6. Часть 2. Базовые типовые решения

8 Шлюз (Gateway)

Шлюз (Gateway)

Класс, инкапсулирующий доступ к внешней системе или источнику данных

Проблема взаимодействия ООП приложений со структурами, которые не являются объектными

Класс, представляющий собой объектную надстройку над этим API

Внешняя система, для которой определен или существует некоторый API-интерфейс

9 Шлюз (Gateway)

Шлюз (Gateway)

Принцип действия.

Идея: Берем некоторый внешний источник. Отвечаем на вопрос: «Какие действия должно совершать приложение по отношению к этому внешнему источнику?» Создаем простой API, наполняем его необходимой функциональностью. Делаем шлюз, который представляет оболочку над API. Вызовы методов шлюза приводят к обращениям к внешнему источнику.

10 Шлюз (Gateway)

Шлюз (Gateway)

Принцип действия.

Некоторые моменты: Шлюз – основа для реализации фиктивных служб (Service Stub). Изменения в шлюзе ради размещения фиктивной службы оправданы. Шлюз – как можно более простой! Шлюз обрабатывает задания и одновременно обладает минимальной функциональностью. Все более сложное в клиентах шлюза. Шлюз, который создается CASE-средством (системой автоматической генерации кода). Реализация шлюза в терминах двух объектов – прикладной части (back end) и интерфейсной части (front end). Прикладная часть - это минимальная оболочка для функций доступа к внешнему источнику она не упрощает API. Интерфейсная часть преобразует неудобный API в класс, оптимально приспособленный под конкретное приложение.

11 Шлюз (Gateway)

Шлюз (Gateway)

Назначение.

Некоторые моменты: Применяется, когда интерфейс доступа к внешнему источнику НЕУДОБНЫЙ. Шлюз концентрирует все неудобство в одном месте, а не во всей системе. Шлюз облегчает тестирование, так как предоставляет потенциальную точку внедрения фиктивной службы. Шлюз предоставляет возможность легко переключаться между источниками данных. Это простое и гибкое средство для инкапсуляции изменений. Альтернатива снижения зависимостей от внешних источников преобразователь (Mapper), но он более сложный. Шлюз и похожие решения (Фасад, Адаптер, Медиатор) Фасад – задается разработчиком внешней службы, а шлюз клиентом. Адаптер подстраивает существующие интерфейсы. Медиатор разделяет множество объектов, шлюз только ДВА. В медиаторе объекты знают о существовании объекта медиатора, а в шлюзе источник не подозревает о существовании шлюза.

12 Преобразователь (Mapper)

Преобразователь (Mapper)

Класс, устанавливающий связь между двумя независимыми объектами

Проблема установления взаимодействия между двумя подсистемами, которые при этом не должны знать о существовании друг друга

Класс, представляющий собой объектную надстройку над этим API

Внешняя система, для которой определен или существует некоторый API-интерфейс

13 Преобразователь (Mapper)

Преобразователь (Mapper)

Принцип действия.

Некоторые моменты: Преобразователь – «изоляционный слой» между подсистемами. Основное назначение: перемещение данных из одной подсистемы в другую. Основная проблема: кто запускает преобразователь? Принцип работы зависит от природы отображаемых слоев. Наиболее часто используется преобразователь данных (Data Mapper).

14 Преобразователь (Mapper)

Преобразователь (Mapper)

Назначение.

Преобразователь – Шлюз. Последний лучше, в смысле проще. Условие использование преобразователя – независимость. Преобразователь и Медиатор. Объекты использующие медиатор знают об его наличии, даже если им неизвестно о существовании друг друга. Объекты разделенные преобразователем НЕ знают о существовании друг друга.

15 Супертип слоя (Layer Supertype)

Супертип слоя (Layer Supertype)

Тип, выполняющий роль суперкласса для всех классов своего слоя.

Проблема: что делать, если одни и те же методы дублируются во всех объектах слоя? Принцип действия: Создается класс, который является суперклассом для всех объектов слоя Если в слое несколько разных видов объектов можно создать несколько разных супертипов для этого слоя. Назначение: Используется, если все объекты соответствующего слоя имеют некоторые общие свойства или поведение. Альтернатива – композитное делегирование.

16 Отделенный интерфейс (Separated Interface)

Отделенный интерфейс (Separated Interface)

Типовое решение, предполагающее размещение интерфейса и его реализации в разных пакетах.

Улучшение структуры системы за счет снижения зависимостей между ее составными частями. Выполняем группировку и определяем, кому что можно. Проблема, как осуществить вызов операций, которые противоречат общей структуре зависимостей?

Зависимая от интерфейса реализация

Независимый интерфейс

17 Отделенный интерфейс (Separated Interface)

Отделенный интерфейс (Separated Interface)

Принцип действия.

Основная идея: Реализация зависит от своего интерфейса, но не наоборот. Следовательно, интерфейс и его реализацию можно разместить в разных пакетах. Пакет, содержащий реализацию, будет зависеть от пакета, содержащего интерфейс, а вот все другие пакеты, будут могут зависеть от пакета с интерфейсом, но не будут зависеть от пакета с реализацией. Для того, чтобы все заработало, интерфейс кто-то должен реализовывать. Это можно сделать с помощью некоторого третьего пакета, который будет связывать интерфейс с реализацией во время компиляции или связывать их во время инициализации (настройки) приложения посредством типового решения дополнительный модуль (Plugin).

18 Отделенный интерфейс (Separated Interface)

Отделенный интерфейс (Separated Interface)

Принцип действия.

Размещение интерфейса: пакет клиента или в отдельном промежуточном пакете. Решение зависит от того сколько клиентов и кто разрабатывает интерфейс. Проблема создания экземпляра реализации. Чтобы создать экземпляр реализации необходимо знать об ее классе. Часто для этих целей используется объект фабрика = дополнительный модуль. Более простая альтернатива – отдельный пакет, который знает и интерфейсы и реализации.

19 Отделенный интерфейс (Separated Interface)

Отделенный интерфейс (Separated Interface)

Назначение.

Применяется для того, чтобы избежать зависимостей между частями системы. Если в пакете инфраструктуры размещен абстрактный код для обработки стандартных случаев, который должен вызывать конкретный код приложения. Если код одного слоя должен обратиться к коду другого слоя о существовании которого он не знает. Если нужно вызвать чьи-то чужие методы, но нет желания попадать в зависимость от вызова этих методов.

«Уровень служб»
http://900igr.net/prezentacija/ekonomika/uroven-sluzhb-93229.html
cсылка на страницу

Без темы

757 презентаций
Урок

Экономика

125 тем
Слайды