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 void start() { processor.freeze(); ram.load(BOOT_ADDRESS, hd.read(BOOT_SECTOR, SECTOR_SIZE)); processor.jump(BOOT_ADDRESS); processor.execute(); } } /* Client */ class You { public static void main(String[] args) { ComputerFacade computer = new ComputerFacade(); computer.start(); } }
Comments
Post a Comment