Summary
Implementations of the Proxy pattern establish a placeholder object that manages access to a target object. A proxy object can isolate clients from shifts in state of a desired object, as when loading an image requires a discernible duration. A problem with Proxy is that it usually relies on a tight coupling between the placeholder and the proxied object. Dynamic proxies in Java will sometimes offer a solution. If an object’s class implements interfaces for the methods that you want to intercept, you can wrap the object in a dynamic proxy and arrange for your own logic to execute around or instead of the wrapped object’s code.