设计模式--外观模式

实验12:外观模式

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:

1、理解外观模式的动机,掌握该模式的结构;

2、能够利用外观模式解决实际问题。

[实验任务]:计算机开启

在计算机主机(Mainframe)中,只需要按下主机的开机按钮(on()),即可调用其他硬件设备和软件的启动方法 ,如内存(Memory)的自检(check())、CPU的运行(run())、硬盘(HardDisk)的读取(read())、操作系统(OS)的载入(load()),如果某一过程发生错误则计算机启动失败。

类图

源代码

public class CPU
{
    public void run()
    {
        System.out.println("CPU运行中");
    }
}

public class HardDisk
{
    public void read()
    {
        System.out.println("硬盘读取中");
    }
}

public class Mainframe
{
    private Memory memory;
    private CPU cpu;
    private HardDisk hardDisk;
    private OS os;

    public Mainframe()
    {
        memory = new Memory();
        cpu = new CPU();
        hardDisk = new HardDisk();
        os = new OS();
    }

    public void on()
    {
        try
        {
            memory.check();
            cpu.run();
            hardDisk.read();
            os.load();
        }
        catch (Exception e)
        {
            System.out.println("计算机启动失败");
        }
        System.out.println("计算计启动成功");
    }
}

public class Memory
{
    public void check()
    {
        System.out.println("内存自检中");
    }
}

public class OS
{
    public void load()
    {
        System.out.println("操作系统载入中");
    }
}

public class Client
{
    public static void main(String[] args)
    {
        Mainframe mainframe=new Mainframe();
        mainframe.on();
    }
}

 运行效果

相关推荐

  1. 设计模式外观模式

    2023-12-26 12:06:04       56 阅读
  2. 设计模式——外观模式

    2023-12-26 12:06:04       47 阅读
  3. 设计模式-外观模式

    2023-12-26 12:06:04       53 阅读
  4. 设计模式外观模式

    2023-12-26 12:06:04       43 阅读
  5. 设计模式: 外观模式

    2023-12-26 12:06:04       43 阅读
  6. 设计模式外观模式

    2023-12-26 12:06:04       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-26 12:06:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-26 12:06:04       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-26 12:06:04       87 阅读
  4. Python语言-面向对象

    2023-12-26 12:06:04       96 阅读

热门阅读

  1. 第38节: Vue3 鼠标按钮修改器

    2023-12-26 12:06:04       60 阅读
  2. django的通知和信号量

    2023-12-26 12:06:04       62 阅读
  3. day27 回溯(03)

    2023-12-26 12:06:04       70 阅读
  4. python 1200例——【9】斐波那契数列

    2023-12-26 12:06:04       57 阅读
  5. PHP中include 和 require 语句

    2023-12-26 12:06:04       60 阅读
  6. U-Boot DM(一):CMDLINE宏

    2023-12-26 12:06:04       67 阅读
  7. 【Qt-容器类】

    2023-12-26 12:06:04       57 阅读