ООП для чайников. Паттерны проектирования. Прокси (proxy)

Последний паттерн из группы структурных, — Прокси. Его назначение в том, что бы добавлять дополнительный слой функциональности между клиентом и подсистемой (субъектом). В такой, казалось бы избыточной работе есть масса смысла и пользы, приведу несколько примеров когда это оправдано:

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

На диаграмме прокси выглядит так:

proxy

Короткий пример Прокси:

class XMPPRequest():
 
    def __init__(self, connect):
        pass
 
    def send(self, to, text):
        return True
 
class XmppProxy():
 
    def send(self, who, to, text):
        xmpp = XMPPRequest(who)
        return xmpp.send(to, text)
 
if __name__ == '__main__':
    proxy = XmppProxy()
    print(proxy.send("mrjazz", "team", "hi all"))

Comments

comments


Bookmark and Share