外观模式:
外观模式是面向对象编程中的重要设计模式。外观类用来掩盖复杂的内部逻辑,为用户提供简洁统一的服务接口。外观类的主要功能如下:
1.通过提供简明的对外API接口,来提高程序的可阅读性和间接性。
2.提供通用的特定功能。
3.为代码重构提供一个低耦合的出发点。
good example:
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 final CPU processor;private final Memory ram;private final 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) {var computer = new ComputerFacade();computer.start();}
}
总结:
外观模式主要是为外界提供一个统一的简洁的功能接口。这也正是它不同于建造者模式的地方,建造者模式强调如何构造组合数据。