0
点赞
收藏
分享

微信扫一扫

Jenkins设置root权限(13)

才德的女子 03-04 17:30 阅读 3

外观模式(Facade Pattern)是一种结构型设计模式,它提供了一个统一的接口,用于访问子系统中的一组接口。外观模式定义了一个高层接口,使子系统更容易使用。

以下是一个使用 Java 实现外观模式的实践案例:

场景描述

假设我们有一个复杂的计算机系统,它包含多个组件,如 CPU、内存和硬盘。我们希望提供一个简化的接口来启动和关闭整个计算机。

步骤1:创建复杂子系统的组件

1// CPU 类
2class CPU {
3    public void freeze() {
4        System.out.println("CPU freeze.");
5    }
6    public void jump(long position) {
7        System.out.println("CPU jump to position " + position);
8    }
9    public void execute() {
10        System.out.println("CPU execute.");
11    }
12}
13
14// 内存类
15class Memory {
16    public void load(long position, byte[] data) {
17        System.out.println("Memory load from position " + position);
18    }
19}
20
21// 硬盘类
22class HardDrive {
23    public byte[] read(long lba, int size) {
24        System.out.println("Hard drive read lba " + lba + " size " + size);
25        return new byte[]{}; // 返回假数据
26    }
27}

步骤2:创建外观类

1// 计算机类,作为外观类提供简化接口
2class ComputerFacade {
3    private CPU cpu;
4    private Memory memory;
5    private HardDrive hardDrive;
6
7    public ComputerFacade() {
8        this.cpu = new CPU();
9        this.memory = new Memory();
10        this.hardDrive = new HardDrive();
11    }
12
13    public void start() {
14        cpu.freeze();
15        memory.load(BOOT_ADDRESS, hardDrive.read(BOOT_SECTOR, SECTOR_SIZE));
16        cpu.jump(BOOT_ADDRESS);
17        cpu.execute();
18    }
19
20    // 可以添加更多方法,如 shutdown 方法等
21
22    private static final long BOOT_ADDRESS = 0x0000fff0L;
23    private static final long BOOT_SECTOR = 0x00007C00L;
24    private static final int SECTOR_SIZE = 512;
25}

步骤3:客户端代码使用外观类

1public class FacadePatternDemo {
2    public static void main(String[] args) {
3        ComputerFacade computer = new ComputerFacade();
4        computer.start(); // 客户端代码只需要调用外观类的 start 方法
5    }
6}

在上述代码中,CPU、Memory 和 HardDrive 类代表了计算机的主要组件,每个类都有各自的复杂接口。ComputerFacade 类作为外观,提供了 start() 方法,该方法封装了启动计算机所需的步骤。

客户端代码只需要知道 ComputerFacade 类,并调用其 start() 方法来启动计算机,无需了解内部的复杂逻辑。这样使客户端代码从复杂的子系统中解耦,简化了操作和维护。

外观模式常用于为复杂的系统提供一个简单的接口,或者当需要为子系统中的一组接口提供一个清晰而简单的界面时。它还有助于分层系统,并且可以作为系统各层间的通信的中介。

举报

相关推荐

0 条评论