Proxy pattern
E679871
The Proxy pattern is a structural design pattern in software engineering that provides a surrogate or placeholder object to control access to another object, often adding lazy initialization, access control, logging, or remote communication.
Statements (47)
| Predicate | Object |
|---|---|
| instanceOf | software design pattern ⓘ |
| belongsTo | Gang of Four design patterns NERFINISHED ⓘ |
| benefit |
can add cross-cutting concerns transparently
ⓘ
can defer object creation until needed ⓘ can optimize performance via caching ⓘ can protect sensitive objects from unauthorized access ⓘ separates access control from core functionality ⓘ |
| category | structural pattern ⓘ |
| consequence |
adds an extra level of indirection
ⓘ
can increase design complexity ⓘ can introduce performance overhead ⓘ |
| constraint | Proxy and RealSubject implement the same interface ⓘ |
| definesRole |
Proxy
ⓘ
RealSubject ⓘ Subject interface ⓘ |
| describedIn | Design Patterns: Elements of Reusable Object-Oriented Software NERFINISHED ⓘ |
| field | software engineering ⓘ |
| hasAuthor |
Erich Gamma
NERFINISHED
ⓘ
John Vlissides NERFINISHED ⓘ Ralph Johnson NERFINISHED ⓘ Richard Helm NERFINISHED ⓘ |
| purpose |
add behavior when accessing an object
ⓘ
control access to another object ⓘ provide a surrogate or placeholder for another object ⓘ |
| relatedTo |
Adapter pattern
NERFINISHED
ⓘ
Bridge pattern NERFINISHED ⓘ Decorator pattern NERFINISHED ⓘ Facade pattern NERFINISHED ⓘ Flyweight pattern NERFINISHED ⓘ |
| supports |
access control
ⓘ
caching ⓘ lazy initialization ⓘ logging ⓘ monitoring ⓘ remote communication ⓘ security checks ⓘ |
| usedIn |
aspect-oriented style logging
ⓘ
distributed systems ⓘ lazy-loading of large objects ⓘ remote method invocation frameworks ⓘ security-sensitive applications ⓘ |
| variant |
Caching Proxy
ⓘ
Logging Proxy ⓘ Protection Proxy NERFINISHED ⓘ Remote Proxy ⓘ Smart Reference ⓘ Virtual Proxy ⓘ |
Referenced by (1)
Full triples — surface form annotated when it differs from this entity's canonical label.