Computer Science Design Patterns/Facade

{{Computer Science Design Patterns/Page A Facade pattern hides the complexities of the system and provides an interface to the client from where the client can access the system. Dividing a system into subsystems helps reduce complexity. We need to minimize the communication and dependencies between subsystems. For this, we introduce a facade object that provides a single, simplified interface to the more general facilities of a subsystem.
 * mode={{{mode|reading}}}
 * page={{{page|{{SUBPAGENAME}}}}}
 * stage=25
 * stage date=29 Jan, 2014
 * stage comment=Add more illustrations.
 * previous=Decorator
 * next=Factory method
 * content=

Examples
The  command is a shortcut for SSH commands. A remote file copy could be done writing several commands with an SSH connection but it can be done in one command with. So the  command is a facade for the SSH commands. Although it may not be coded in the object programming paradigm, it is a good illustration of the design pattern.

Cost
This pattern is very easy and has not additional cost.

Creation
This pattern is very easy to create.

Maintenance
This pattern is very easy to maintain.

Removal
This pattern is very easy to remove too.

Advises

 * Do not use this pattern to mask only three or four method calls.

Implementations
This is an abstract example of how a client ("you") interacts with a facade (the "computer") to a complex system (internal computer parts, like CPU and HardDrive).

}}