Skip to content

Latest commit

 

History

History

Proxy

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

Замісник (Proxy)

Патерн Proxy надає об'єкт для контролю доступу до іншого об'єкту.

Інша назва шаблону - "Сурогат". У цьому розумінні, це предмет або продукт, який замінює собою будь-який інший предмет або продукт, з яким сурогат має лише деякі загальні властивості, але він не володіє всіма якостями оригінального предмета або продукту.

Патерн Proxy висувається ряд важливих вимог, а саме те, що оригінальний об'єкт і його сурогат повинні взаємодіяти один з одним. Також повинна бути можливість, заміщення оригінальним об'єктом сурогату в місці його використання, відповідно інтерфейси взаємодії оригінального об'єкта і його сурогату повинні збігатися.

Для реалізації необхідно:

  1. Інтерфейс Subject, що є загальним інтерфейсом для реального об'єкта і його сурогату;
  2. Структура RealSubject, яка реалізує реальний об'єкт;
  3. Структура Proxy, яка реалізує об'єкт сурогату. Зберігає в собі посилання на реальний об'єкт, що дозволяє заміснику звертатися до реального об'єкт безпосередньо.

Наприклад, патерн Proxy можна використовувати, якщо нам потрібно управляти ресурсоемними об'єктами, але ми не хочемо створювати екземпляри таких об'єктів до моменту їх реального використання.

Ви можете подумати, що це те ж саме, що і Adapter або Decorator. Але...

Proxy -- надає своєму об'єкту той же інтерфейс.

Adapter -- надає інший інтерфейс.

Decorator -- надає розширений інтерфейс.