From c91e670007339b57944dee414703d33b73925585 Mon Sep 17 00:00:00 2001 From: georgedem Date: Sun, 14 Aug 2022 23:18:56 +0300 Subject: [PATCH] description --- description/PATTERNS.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/description/PATTERNS.md b/description/PATTERNS.md index dcc879f..63e5f2e 100644 --- a/description/PATTERNS.md +++ b/description/PATTERNS.md @@ -108,7 +108,14 @@ + Когда необходимо использовать имеющийся класс, но его интерфейс не соответствует потребностям + Когда надо использовать уже существующий класс совместно с другими классами, интерфейсы которых не совместимы -+ ### [Прокси (proxy).]() ++ ### [Прокси (proxy).](https://github.com/georgedem975/patterns/tree/master/Proxy) + __Заместитель__ (Proxy) предоставляет объект-заместитель, который управляет доступом к другому объекту. То есть создается объект-суррогат, который может выступать в роли другого объекта и замещать его. + * ___Когда использовать прокси?___ + + Когда надо осуществлять взаимодействие по сети, а объект-проси должен имитировать поведения объекта в другом адресном пространстве. Использование прокси позволяет снизить накладные издержки при передачи данных через сеть. Подобная ситуация еще называется удалённый заместитель (remote proxies) + + Когда нужно управлять доступом к ресурсу, создание которого требует больших затрат. Реальный объект создается только тогда, когда он действительно может понадобится, а до этого все запросы к нему обрабатывает прокси-объект. Подобная ситуация еще называется виртуальный заместитель (virtual proxies) + + Когда необходимо разграничить доступ к вызываемому объекту в зависимости от прав вызывающего объекта. Подобная ситуация еще называется защищающий заместитель (protection proxies) + + Когда нужно вести подсчет ссылок на объект или обеспечить потокобезопасную работу с реальным объектом. Подобная ситуация называется "умные ссылки" (smart reference) + + ### [Мост (bridge).]() + ### [Компоновщик (composite).]() + ### [Декоратор (decorator).]()