设计模式——外观模式

一、任务

计算机开启

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

二、类图

三、代码

1、Java代码

Client
 1 package tutorial12;
 2 
 3 public class Client {
 4 
 5     public static void main(String[] args) {
 6         // TODO 自动生成的方法存根
 7 
 8         Mainframe mainframe=new Mainframe();
 9         mainframe.show();
10     }
11 
12 }

1 package tutorial12;
2 
3 public class CPU {
4 
5     public void run() {
6         System.out.println("CPU开始启动.....");
7         System.out.println("CPU正常运行\n");
8     }
9 }
CPU
1 package tutorial12;
2 
3 public class HardDisk {
4     public void read() {
5         System.out.println("HardDisk开始启动.....");
6         System.out.println("HardDisk正常运行\n");
7     }
8 }
HardDisk
 1 package tutorial12;
 2 
 3 public class Mainframe {
 4 
 5     private CPU cpu;
 6     private Memory memory;
 7     private OS os;
 8     private HardDisk hardDisk;
 9     
10     public Mainframe() {
11         
12         memory=new Memory();
13         cpu=new CPU();
14         os=new OS();
15         hardDisk=new HardDisk();
16     }
17     
18     public void show() {
19         cpu.run();
20         memory.check();
21         hardDisk.read();
22         os.load();
23         
24     }
25 }
Mainframe
1 package tutorial12;
2 
3 public class Memory {
4     public void check() {
5         System.out.println("Memory开始启动.....");
6         System.out.println("Memory正常运行\n");
7     }
8 }
Memory
1 package tutorial12;
2 
3 public class OS {
4     public void load() {
5         System.out.println("OS开始启动.....");
6         System.out.println("OS正常运行\n");
7     }
8 }
OS

2、C++代码

 1 #include<iostream>
 2 using namespace std;
 3 class Memory {
 4 public:
 5     void check() {
 6         cout << "开始检查内存情况..." << endl;
 7         cout << "内存正常" << endl<<endl;
 8     }
 9 };
10 class Cpu {
11 public:
12     void run() {
13         cout << "开始检查CPU情况..." << endl;
14         cout << "CPU运行正常" << endl<<endl;
15     }
16 };
17 class HardDisk {
18 public:
19     void read() {
20         cout << "开始检查磁盘读取情况..." << endl;
21         cout << "磁盘读取正常" << endl<<endl;
22     }
23 };
24 class OS {
25 public:
26     void load() {
27         cout << "开始检查操作系统情况..." << endl;
28         cout << "操作系统载入正常" << endl<<endl;
29     }
30 
31 };
32 class MainFrame {
33 private:
34     Memory memory;
35     Cpu cpu;
36     OS os;
37     HardDisk harddisk;
38 
39 public:
40     void show() {
41         memory.check();
42         cpu.run();
43         harddisk.read();
44         os.load();
45         cout << "开机正常" << endl;
46     }
47 };
48 
49 void main()
50 {
51     MainFrame mf;
52     mf.show();
53 }
Client

四、结果

1、Java结果截图

 2、C++结果截图:

原文地址:https://www.cnblogs.com/Lizhichengweidashen/p/15564007.html