Lecture 39: When to Use A Proxy
description
Transcript of Lecture 39: When to Use A Proxy
LECTURE 39:WHEN TO USE A PROXY
Computer Science 313 – Advanced Programming Topics
Why Do We Use Proxy Pattern? Discussed word proxy in
Wednesday's lecture
When and why would we ever use a proxy?
Real-World Uses of Proxy
Real-World Uses of Proxy
Real-World Uses of Proxy
Real-World Uses of Proxy
Why We Use Proxy
Add level of indirection before real subject Continue actions, but protect subject
from harm Create plausible deniability – "But it
wasn't me!" Get tasks done, but eliminate need to be
local Improve performance by using saved
results Same design needs met using Proxy
Pattern In all cases, proxy appears identical to
real subject Proxy acts first then lets subject do the
real work Real subject stays hidden – client does
not know
Proxy versus… Adapter
Proxy Pattern Adapter Pattern
Proxy versus… Adapter
Proxy Pattern Adapter Pattern Client only knows of
Proxy Uses interface client
needs Subject does all work
Interface identical to the real subjects
Does not change each calls' parameters & return value
Cannot access real subject
Client only knows of Adapter
Uses interface client needs
Adaptee(s) does all work
Interface differs with that of adaptee(s)
Modifies, adds or removes parameters & return value
Can access real subject
Proxy versus… Composite
Proxy Pattern Composite Pattern
Proxy versus… Composite
Proxy Pattern Composite Pattern Structural pattern Common interface
defined One of GoF's patterns
Only one subject used
Proxy acts as a gatekeeper
Structural pattern Common interface
defined One of GoF's patterns
Many leaves can be used
Composite collects leaves
Proxy versus… Decorator
Proxy Pattern Decorator Pattern
Proxy versus… Decorator
Proxy Pattern Decorator Pattern Client thinks it has
subject Hides subject from
others Proxy can intercept
call
One proxy per pattern Does not add or
modify basic functionality
Client thinks has concept
Hides concept from others
Decorator can intercept call
Many decorators per pattern
Adds or modifies concept's basic functionality
Proxy versus… Observer
Proxy Pattern Observer Pattern
Proxy versus… Observer
Proxy Pattern Observer Pattern
For Next Class
Last lab due “Friday”; submit until final exam time Start now == more committing acts involving
carrots Finish reading on our last design pattern
Lots of interesting code on Wednesday Will be presenting many cool & useful hacks Follow the white rabbit – they have tricks &
carrots
----------censored----------