Wednesday, October 28, 2015


The Facade defines a unified, higher level interface to a subsystem that makes it easier to use. It hides the complexity of a sub-system from the client and exposes the useful features only.

We can see the facade as a clerk that offers you many service (billing, packaging, selling products) and hides the management of its business (taxes, supply of provisions, cleaning...).

Check list

  1. Identify a simpler, unified interface for the subsystem or component.
  2. Design a 'wrapper' class that encapsulates the subsystem.
  3. The facade/wrapper captures the complexity and collaborations of the component, and delegates to the appropriate methods.
  4. The client uses (is coupled to) the Facade only.
  5. Consider whether additional Facades would add value.


Post a Comment

Note: Only a member of this blog may post a comment.