11.11

实验12:外观模式

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

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

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

 

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

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

实验要求:

 

1、类图

 

 

2、源代码

①、CPU

package org.example.shiyanshier;

public class CPU {
    public void run(){
        System.out.println("CPU正在运行中");
    }
    public void off(){
        System.out.println("CPU发生错误");
    }
}

 

②、OS

package org.example.shiyanshier;

import org.w3c.dom.ls.LSOutput;

public class OS {
    public void load(){
        System.out.println("OS正在载入");
    }
    public void off(){
        System.out.println("OS发生错误");
    }
}

 

③、Memory

 

package org.example.shiyanshier;

public class Memory {
    public void check(){
        System.out.println("内存正在自检");
    }
    public void off(){
        System.out.println("内存发生错误");
    }
}

 

④、HardDisk

package org.example.shiyanshier;

public class HardDisk {
    public void read(){
        System.out.println("磁盘正在读取");
    }
    public void off(){
        System.out.println("磁盘发生错误");
    }
}

 

⑤、MainFrame

package org.example.shiyanshier;

public class MainFrame {
    private Memory memory;
    private CPU cpu;
    private OS os;
    private HardDisk hardDisk;
    public MainFrame(){
        memory=new Memory();
        cpu=new CPU();
        os=new OS();
        hardDisk=new HardDisk();
    }
    public void on() {
        System.out.println("电脑正在启动中");
        memory.check();
        cpu.run();
        os.load();
        hardDisk.read();
    }
    public void off(){
        System.out.println("电脑启动失败。。。。");
        memory.off();
        cpu.off();
        os.off();
        hardDisk.off();
    }
}

 

⑥、Main

package org.example.shiyanshier;

public class Main {
    public static void main(String[] args) {
        MainFrame mainFrame=new MainFrame();
        mainFrame.on();
        mainFrame.off();
    }
}

 

3、运行结果

 

 

 

posted @ 2024-11-13 23:20  七安。  阅读(21)  评论(0)    收藏  举报