3.3 Proxy

The proxy pattern is a useful pattern when you want to add additional functionality to source code that you may not have access to. With the proxy pattern, we can wrap existing functionality in a common interface and add whatever sort of extra logic is necessary.