Modelul Proxy oferă un substituent sau înlocuitor pentru un alt obiect pentru a controla accesul la acesta. Proxy-ul are aceeași interfață cu obiectul real, dar adaugă comportament — cum ar fi încărcarea leneșă, control al accesului, caching sau logging — înainte de a delega la acesta.
Ce face modelul Proxy
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"
