Façade (2)
Motivation
Structuring a system into subsystems reduces complexity
Want to reduce communications and dependencies between
subsystems
Applicability
Want to provide a simple interface to a complex subsystem
There are many dependencies between clients and
implementation classes in a subsystem.  Want to decouple the
subsystem from clients and other subsystems
Want to layer subsystems – Can use a façade to define entry
point to each subsystem level