Facade pattern hides the complexities of the system and provides an interface to the client using which the client can access the system.
Facade is recognizable by behavioral methods which internally uses instances of different independent abstract/interface types.
javax.faces.context.FacesContext, it internally uses among others the abstract/interface typesLifeCycle,ViewHandler,NavigationHandlerand many more without that the enduser has to worry about it (which are however overridable by injection).javax.faces.context.ExternalContext, which internally usesServletContext,HttpSession,HttpServletRequest,HttpServletResponse, etc.
