外观模式:隐藏了复杂系统的复杂性,并提供一个简单的接口来访问系统

外观模式是一种结构型设计模式,它为复杂子系统提供了一个统一的接口,从而使其更易于使用。外观模式隐藏了子系统的复杂性,并将其封装在一个高级接口中。在使用外观模式时,客户端只需要与外观对象进行交互,而不需要直接与子系统中的各个组件交互。

// 子系统中的组件
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();
}
}

在上面的代码中,CPUMemoryHardDrive分别代表子系统中的组件,而ComputerFacade是外观类。

ComputerFacade中,我们将三个子系统组件实例化并暴露一个公共方法startComputer()。客户端只需要调用该方法即可启动计算机,而不需要了解计算机内部的复杂性。

通过使用外观模式,客户端代码变得更加简单,而且如果需要修改或者更新子系统的实现,客户端代码不受影响。

posted @   穆海如枫  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
点击右上角即可分享
微信分享提示