This document discusses the proxy pattern. The proxy pattern provides a surrogate or placeholder for another object to control access to it. There are different types of proxies like remote proxies, virtual proxies, and protection proxies. A proxy maintains a reference to the real subject and presents the same interface to control access and optionally perform additional tasks when the subject is accessed.
1. S.Ducasse 1
QuickTime™ and aTIFF (Uncompressed) decompressorare needed to see this picture.
Stéphane Ducasse
Stephane.Ducasse@univ-savoie.fr
http://www.listic.univ-savoie.fr/~ducasse/
Proxy
3. S.Ducasse 3
Proxy
• Category
• Structural
• Intent
• Provide a surrogate or placeholder for another object to
control access to it
• Also known as
• Surrogate
5. S.Ducasse 5
Proxy Applicability
• A remote proxy provides a local representative for an
object in a different address space
• A virtual proxy creates expensive objects on demand
• A protection proxy controls access to the original
object, in order to enforce access rights
• A smart reference is a replacement for a bare pointer
that performs additional actions when an object is
accessed
7. S.Ducasse 7
Proxy Pattern Participants
• Proxy (ImageProxy)
• maintains a reference that lets the proxy access the real
subject
• provides an interface identical to Subject’s so that a
proxy can be substituted for the real subject
• controls access to the real subject and may be
responsible for creating and deleting it
8. S.Ducasse 8
Proxy Participants (continued)
• Subject (Graphic)
• defines the common interface for RealSubject and Proxy
so that a Proxy can be used anywhere a RealSubject is
expected
• RealSubject (Image)
• defines the real object that the proxy represents
9. S.Ducasse 9
Proxy Consequences
• Consequences
• A remote proxy can hide the fact that an object resides
in a different address space
• A virtual proxy can perform optimizations such as
creating an object on demand
• Both protection proxies and smart references allow
additional housekeeping tasks when an object is
accessed
10. S.Ducasse 9
Proxy Consequences
• Consequences
• A remote proxy can hide the fact that an object resides
in a different address space
• A virtual proxy can perform optimizations such as
creating an object on demand
• Both protection proxies and smart references allow
additional housekeeping tasks when an object is
accessed