外觀模式:
外觀模式是面向對象編程中的重要設計模式。外觀類用來掩蓋復雜的內部邏輯,為用戶提供簡潔統一的服務接口。外觀類的主要功能如下:
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();}
}
總結:
外觀模式主要是為外界提供一個統一的簡潔的功能接口。這也正是它不同于建造者模式的地方,建造者模式強調如何構造組合數據。