zoukankan      html  css  js  c++  java
  • 设计模式——外观模式

    一、任务

    计算机开启

    在计算机主机(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++结果截图:

  • 相关阅读:
    C#自己写的迭代器(拓展字典)
    C#中的浅复制和深复制
    C#中的委托和事件
    转载--《怎样制作一款优秀的塔防游戏》
    3D数学基础
    MonoBehaviour可重写的函数
    悲观锁及乐观锁
    java nio
    hadoop2.x通过Zookeeper来实现namenode的HA方案集群搭建-实践版
    oozie bundle学习笔记
  • 原文地址:https://www.cnblogs.com/Lizhichengweidashen/p/15564007.html
Copyright © 2011-2022 走看看