intermediate
Proxy
Ставьте stand-in object перед real subject для access control, lazy loading, caching, remote calls или instrumentation.
Proxy стоит перед real subject, чтобы контролировать доступ, откладывать дорогую работу, кешировать, проверять права или инструментировать вызовы. Virtual proxies лениво грузят тяжёлые объекты; protection proxies ограничивают операции; remote proxies скрывают сетевую латентность. Клиент должен одинаково работать с proxy и subject.
На интервью: сравните Proxy с Decorator по intent — контроль vs обогащение. Caching proxies и владелец invalidation.
Типовые ошибки: proxy меняет семантику ошибок; устаревший cache без TTL; security proxy проверяет слишком поздно.
Компромисс — гибкость против сложности: знайте, когда достаточно более простого пути.
Чеклист:
- Клиент зависит от общего интерфейса subject.
- Lazy loading сохраняет наблюдаемое поведение.
- Явные cache keys и invalidation.
- Authorization до побочных эффектов.