结构型模式 - 外观模式 (Facade)
又名门面模式,通过为多个子系统提供一个一致的接口,使得子系统使用起来更加容易.
外观模式是"迪米特法则"的典型应用.
java
// CPU 类,代表 CPU 子系统
class CPU {
public void start() {
System.out.println("CPU 启动");
}
public void shutDown() {
System.out.println("CPU 关闭");
}
}
// 内存类,代表内存子系统
class Memory {
public void load() {
System.out.println("内存加载");
}
public void unload() {
System.out.println("内存卸载");
}
}
// 硬盘类,代表硬盘子系统
class HardDrive {
public void read() {
System.out.println("硬盘读取");
}
public void stopReading() {
System.out.println("硬盘停止读取");
}
}
// 电脑外观类,封装子系统操作
class ComputerFacade {
private CPU cpu;
private Memory memory;
private HardDrive hardDrive;
public ComputerFacade() {
this.cpu = new CPU();
this.memory = new Memory();
this.hardDrive = new HardDrive();
}
// 开机方法,调用子系统的启动操作
public void startComputer() {
cpu.start();
memory.load();
hardDrive.read();
System.out.println("电脑开机完成");
}
// 关机方法,调用子系统的关闭操作
public void shutDownComputer() {
hardDrive.stopReading();
memory.unload();
cpu.shutDown();
System.out.println("电脑关机完成");
}
}
// 客户端代码
public class ComputerFacadeExample {
public static void main(String[] args) {
ComputerFacade computer = new ComputerFacade();
// 开机
computer.startComputer();
System.out.println();
// 关机
computer.shutDownComputer();
}
}