外观模式是一种结构型设计模式,它为复杂子系统提供了一个统一的接口,从而使其更易于使用。外观模式隐藏了子系统的复杂性,并将其封装在一个高级接口中。在使用外观模式时,客户端只需要与外观对象进行交互,而不需要直接与子系统中的各个组件交互。
// 子系统中的组件
class CPU {
public void processData() {
System.out.println("CPU: processing data...");
}
}
class Memory {
public void load() {
System.out.println("Memory: loading data...");
}
}
class HardDrive {
public void readData() {
System.out.println("Hard drive: reading data...");
}
}
// 外观类
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() {
System.out.println("Starting computer...");
cpu.processData();
memory.load();
hardDrive.readData();
System.out.println("Computer started.");
}
}
// 客户端代码
public class Client {
public static void main(String[] args) {
ComputerFacade computer = new ComputerFacade();
computer.startComputer();
}
}
在上面的代码中,CPU
、Memory
和HardDrive
分别代表子系统中的组件,而ComputerFacade
是外观类。
在ComputerFacade
中,我们将三个子系统组件实例化并暴露一个公共方法startComputer()。客户端只需要调用该方法即可启动计算机,而不需要了解计算机内部的复杂性。
通过使用外观模式,客户端代码变得更加简单,而且如果需要修改或者更新子系统的实现,客户端代码不受影响。
标签:外观,复杂性,void,ComputerFacade,系统,接口,子系统,println,public From: https://www.cnblogs.com/li053/p/17466499.html