A facade's effectiveness is limited, since complex applications can cause the facade's API to grow too large. This is the case with the sample application. Rather than continuing to add methods to the session facade class, the petstore application implements a command pattern on top of The Facade. A Command Pattern Encapsules Each Application Function In a Separate Class. Each Command Instance Repensents A Single Request For An Application Service Along with Data Necessary to Perform The Service.
Implementing a controller with a command pattern not only simplifies a session facade interface, it also keeps the controller implementation cleaner by encapsulating event- and request-handling tasks into smaller objects.