外观模式例题

在计算机主机(MainFrame)中,只需要按下主机的开机按钮(on()),即可调用其他硬件设备和软件的启动方法,如内存(Memory)的自检(check())、CPU的运行(run()),硬盘(HardDisk)的读取(read())、操作系统的载入(load())等,如果任何一个设备发生错误则计算机启动失败。请使用外观设计模式模拟计算机启动工程,编码实现并绘制类图。
1、CPU类

java 复制代码
public class CPU {
   public void run() {
       System.out.println("CPU的运行(run)");
   }
}

2、 硬盘类

java 复制代码
public class HardDisk {
   public void read() {
       System.out.println("硬盘(HardDisk)的读取(read)");
   }
}

3、内存类

java 复制代码
public class Memory {
   public void check() {
       System.out.println("内存(Memory)的自检(check)");
   }
}

4、 操作系统类

java 复制代码
public class OperatingSystem {
   public void load() {
       System.out.println("操作系统的载入(load)");
   }
}

5、计算机主机 外观类

java 复制代码
public class MainFrame {
   private Memory memory;
   private CPU cpu;
   private HardDisk hardDisk;
   private OperatingSystem operatingSystem;
   public MainFrame() {
       this.memory = new Memory();
       this.cpu = new CPU();
       this.hardDisk = new HardDisk();
       this.operatingSystem = new OperatingSystem();
   }
   public void on() {
       memory.check();
       cpu.run();
       hardDisk.read();
       operatingSystem.load();
   }
}

6、 客户端类

java 复制代码
public class Client {
   public static void main(String[] args) {
       MainFrame mainFrame = new MainFrame();
       mainFrame.on();
   }
}

运行结果:

UML图

相关推荐
北极有牛1 分钟前
cpp学习笔记--常量指针
java·开发语言·算法
java资料站8 分钟前
二、Spring AI Alibaba · ChatModel
java·windows·spring
十年Java程序媛32 分钟前
Java 接口和抽象类对比|Java8 新特性,抛弃老旧八股,正确选型
java·spring boot·后端
caoerzhong34 分钟前
JeeWMS 开源 WMS 部署避坑指南:Java 仓库管理系统的环境基线、四类根因与可复现交付
java·开发语言·开源
用户37215742613534 分钟前
Java 合并 PDF 文件:完整合并、指定页面合并与流合并
java
for_ever_love__1 小时前
MySQL 全文索引实战:FULLTEXT、ngram 中文分词与 MATCH AGAINST 到底该怎么用
java·python·mysql·全文检索·分词·索引·ngram
java资料站1 小时前
五、Spring AI Alibaba · Memory · Saver(短期会话)
java·spring·microsoft
夜之眷属2 小时前
Core dump 崩溃排查:JVM 宕机后,那份 core 文件怎么用 gdb 还原现场
java·运维·服务器·jvm
波加曼大王2 小时前
# vLLM不要迷信PagedAttention神话,聊聊线上藏着的内部碎片陷阱
java·架构
SL_staff2 小时前
目标健康度自检清单:开发者视角下的目标-计划-任务链路断点诊断
java·开源·github