Please be my Proxy

The Proxy design pattern is handy when we want to defer the instantiation of an object only when it’s absolutely necessary. To do such a thing, it must comply with the same interface of the object it proxies to so that it can be used anywhere that object is used and not break any expectations.

Another usefulness of the design pattern is to allow calculating access to the underlying object. If a caller should have specific access conditions validated, the Proxy can do it seamlessly.

It’s a beast of a design pattern, in my opinion. I approve of it! 😂