WINTER SALE IS ON!
Proxy

Proxy in Swift

Proxy is a structural design pattern that provides an object that acts as a substitute for a real service object used by a client. A proxy receives client requests, does some work (access control, caching, etc.) and then passes the request to a service object.

The proxy object has the same interface as a service, which makes it interchangeable with a real object when passed to a client.

Complexity:

Popularity:

Usage examples: While the Proxy pattern isn’t a frequent guest in most Swift applications, it’s still very handy in some special cases. It’s irreplaceable when you want to add some additional behaviors to an object of some existing class without changing the client code.

Identification: Proxies delegate all of the real work to some other object. Each proxy method should, in the end, refer to a service object unless the proxy is a subclass of a service.

The following examples are available on Swift Playgrounds.
Kudos to Alejandro Mohamad for creating the Playground version.

Proxy in Other Languages

Proxy in C# Proxy in C++ Proxy in Go Proxy in Java Proxy in PHP Proxy in Python Proxy in Ruby Proxy in Rust Proxy in TypeScript