from abc import ABC, abstractmethod class IService(ABC): @abstractmethod def request(self): pass class RealService(IService): def request(self): print("RealService: Handling request.") class ProxyService(IService): def __init__(self, real_subject): self._real_subject = real_subject def request(self): # Дополнительные операции до вызова метода оригинала print("Proxy: Checking access before firing a real request.") # Вызов метода оригинала result = self._real_subject.request() # Дополнительные операции после вызова метода оригинала print("Proxy: Logging the request.") return result # Клиентский код if __name__ == "__main__": real_service = RealService() proxy = ProxyService(real_service) proxy.request() # Клиент вызывает метод через прокси