Замісник (проксі)
Метафора

Замісник (проксі). Патерни проектування

1. Замісник (проксі)

ЗАМІСНИК
(ПРОКСІ)
МОДУЛЬ: ПАТЕРНИ
ПРОЕКТУВАННЯ

2. Метафора

МЕТАФОРА

3.

ПРИКЛАД

4.

ПРИЗНАЧЕННЯ
Надає об’єкт-замісник

5.

СТРУКТУРА ПАТЕРНА НА МОВІ UML

6.

СТРУКТУРА ПАТЕРНА НА МОВІ C#

7.

УЧАСНИКИ
Proxy - Замісник:
Являє собою клас об'єкта-замісника. Об'єкт замісник зберігає в
собі посилання на реальний суб'єкт, що дозволяє заміснику
звертатися до реального суб'єкту безпосередньо. Замісник має
такий же інтерфейс, як і реальний суб'єкт, що дозволяє в потрібний
момент підставляти замісника замість реального суб'єкта і
навпаки. Замісник контролює доступ до реального суб'єкту і може
відповідати за створення екземпляра реального суб'єкта, якщо це
необхідно.
Subject - Суб'єкт:
Надає загальний інтерфейс для Proxy і RealSubject. Proxy можливо
використовувати всюди, де очікується використання RealSubject.
RealSubject - Реальний суб'єкт:
Являє собою клас об'єкта, для якого потрібне створення замісника.

8.

ЗАСТОСУВАННЯ ПАТЕРНА
Віддалений замісник («Посол» або «Ambassador»)
Віддалений об'єкт-Proxy - це об'єкт, який знаходиться в іншому
адресному просторі щодо цільового об'єкта і забезпечує доступ до
цільового об'єкту. Наприклад, при використанні технології WCF
створюється об'єкт проксі, який представляє собою обгортку для
сервісу-споживача (consumer), що зв'язується з сервісомпостачальником (provider).

9.

ЗАСТОСУВАННЯ ПАТЕРНА
Віртуальний замісник
Віртуальний замісник - це об'єкт,
який створює «важкі» об'єкти на
вимогу.

10.

ЗАСТОСУВАННЯ ПАТЕРНА
Захисний замісник
Захисний замісник контролює
доступ до свого цільового об'єкта.
Наприклад, може використовуватися,
коли потрібно встановити різні права
доступу при реалізаії CRUD в БД.

11.

ЗАСТОСУВАННЯ ПАТЕРНА
Розумне посилання
Об'єкт «розумне посилання» - являє собою об'єктно-орієнтоване
представлення звичайного покажчика (адреси змінної або методу в
пам'яті).
Як приклад розумного посилання в мові C# можна привести такі
синтаксичні конструкції як делегат (delegate), критична секція (Lock),
змінна запиту LINQ, оператори автоматичної генерації програмного
коду асинхронного виконання методу (async і await).

12.

ДЯКУЮ ЗА УВАГУ!
English     Русский Правила