O padrão Proxy fornece um placeholder ou substituto para outro objeto para controlar o acesso a ele. O proxy tem a mesma interface do objeto real, mas adiciona comportamento — como carregamento preguiçoso, controle de acesso, cache ou logging — antes de delegar para ele.
O que o padrão Proxy faz
PROXY → an object that STANDS IN for another, controlling access to it:
→ same interface as the real object (clients use it transparently)
→ adds behavior BEFORE/AROUND delegating to the real object
→ controls WHEN and HOW the real object is accessed
→ "a stand-in that adds control/behavior"
