Comparison
Facade patternvsProxy pattern
Facade pattern
you replaced eleven calls across four classes with one method, and callers stopped needing to know the order.
A single simplified entry point over a subsystem of several collaborating classes. Its intent is simplification rather than translation: the facade defines a new, smaller interface where the adapter conforms to an existing one, and it typically wraps many objects where the other wrappers wrap one. It does not hide the subsystem — callers who need the detail can still reach past it, which is the difference between a facade and a boundary.
Full entry →Proxy pattern
the object looks and behaves exactly like the real one, and its whole job is deciding whether the call gets through.
A wrapper with the same interface as its subject whose purpose is to control access to it — checking permission, deferring creation, or standing in for something remote. It shares its shape with the decorator and differs in intent: a decorator adds behaviour the caller wants, a proxy manages access the caller should not have to think about. Proxies typically control the subject's lifetime as well, where decorators are handed one already made.
Full entry →