定义
外观模式(Facade Pattern):提供一个统一的接口,用来访问子系统中的一群接口,外观定义了一个高层的接口,让子系统更容易使用。其实就是为了方便客户的使用,把一群操作,封装成一个方法。
示例
在这个示例中,我们有三个子系统类: CPU , Memory 和 HardDrive 。每个类都执行系统的不同功能,例如处理数据,加载内存和读取硬盘数据。
然后,我们创建了一个 ComputerFacade 类,它封装了这三个子系统类,并提供了一个简单的 start() 方法,客户端可以使用该方法启动计算机。在 start() 方法中,我们按照正确的顺序调用每个子系统的方法,以确保计算机正确启动。
最后,在客户端代码中,我们创建了一个 ComputerFacade 对象,并使用 start() 方法启动计算机。由于外观类隐藏了系统的复杂性,客户端代码非常简单。
class CPU {
public void processData() {
System.out.println("正在处理数据...");
}
}
class Memory {
public void load() {
System.out.println("正在加载内存...");
}
}
class HardDrive {
public void readData() {
System.out.println("正在读取硬盘数据...");
}
}
// 外观类
class ComputerFacade {
private CPU cpu;
private Memory memory;
private HardDrive hardDrive;
public ComputerFacade() {
cpu = new CPU();
memory = new Memory();
hardDrive = new HardDrive();
}
public void start() {
System.out.println("启动计算机...");
cpu.processData();
memory.load();
hardDrive.readData();
System.out.println("计算机启动完毕!");
}
}
// 客户端代码
public class FacadePatternDemo {
public static void main(String[] args) {
ComputerFacade computer = new ComputerFacade();
computer.start();
}
}