外观模式例题

在计算机主机(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图

相关推荐
掘金-我是哪吒9 分钟前
分布式微服务系统架构第157集:JavaPlus技术文档平台日更-Java多线程编程技巧
java·分布式·微服务·云原生·架构
飞翔的佩奇18 分钟前
Java项目:基于SSM框架实现的忘忧小区物业管理系统【ssm+B/S架构+源码+数据库+毕业论文+开题报告】
java·数据库·mysql·vue·毕业设计·ssm框架·小区物业管理系统
RainbowSea36 分钟前
跨域问题(Allow CORS)解决(3 种方法)
java·spring boot·后端
掘金-我是哪吒37 分钟前
分布式微服务系统架构第155集:JavaPlus技术文档平台日更-Java线程池实现原理
java·分布式·微服务·云原生·架构
RainbowSea40 分钟前
问题 1:MyBatis-plus-3.5.9 的分页功能修复
java·spring boot·mybatis
前端 贾公子43 分钟前
monorepo + Turborepo --- 开发应用程序
java·前端·javascript
鼠鼠我呀21 小时前
【设计模式04】单例模式
单例模式·设计模式
不学会Ⅳ1 小时前
Mac M芯片搭建jdk源码环境(jdk24)
java·开发语言·macos
虫小宝1 小时前
高佣金返利平台监控体系建设:APM、链路追踪与佣金异常预警系统技术实现
java
sniper_fandc2 小时前
SpringBoot系列—入门
java·spring boot·后端