What is Facades? A facade provides a simplified interface to a larger body of code, such as a class library. Using faces, we can make More readable library Wrapped a poorly designed collection of API in a single well - designed API Reduces dependency of outside code on inner working library Facade example on Java /* Complex parts */ class CPU { public void freeze () { ... } public void jump ( long position ) { ... } public void execute () { ... } } class HardDrive { public byte [] read ( long lba , int size ) { ... } } class Memory { public void load ( long position , byte [] data ) { ... } } /* Facade */ class ComputerFacade { private CPU processor ; private Memory ram ; private HardDrive hd ; public ComputerFacade () { this . processor = new CPU (); this . ram = new Memory (); this . hd = new HardDrive (); } public ...