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

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

    类图

    java

    package rjsj.no12;
    
    /**
     * CPU类:子系统类
     *
     */
    public class CPU {
        public void run(){
            System.out.println("处理器运行");
        }
        public void off(){
            System.out.println("处理器关闭");
        }
    }
    package rjsj.no12;
    
    /**
     * Disk(硬盘)类:子系统类
     *
     */
    public class Disk {
        public void read(){
            System.out.println("硬盘读取");
        }
        public void off(){
            System.out.println("硬盘关闭");
        }
    }
    package rjsj.no12;
    
    /**
     * Memory类:子系统类
     *
     */
    public class Memory {
        public void check(){
            System.out.println("内存自检");
        }
        public void off(){
            System.out.println("内存关闭");
        }
    }
    package rjsj.no12;
    
    /**
     * 操作系统OS类:子系统类
     *
     */
    public class OS {
        public void load(){
            System.out.println("操作系统载入");
        }
        public void off(){
            System.out.println("操作系统关闭");
        }
    }
    package rjsj.no12;
    
    /**
     * 主窗口类:外观类
     *
     */
    public class Mainframe {
        private Memory memory;
        private CPU cpu;
        private Disk disk;
        private OS os;
    
        public Mainframe(){
            memory = new Memory();
            cpu = new CPU();
            disk = new Disk();
            os = new OS();
        }
    
        public void on(){
            memory.check();
            cpu.run();
            disk.read();
            os.load();
        }
    
        public void off(){
            memory.off();
            cpu.off();
            disk.off();
            os.off();
        }
    }
    package rjsj.no12;
    
    public class Client {
        public static void main(String[] args) {
            Mainframe mainframe = new Mainframe();
            System.out.println("电脑启动中...");
            mainframe.on();
            System.out.println("启动完成。");
            System.out.println("电脑关闭中...");
            mainframe.off();
            System.out.println("关闭完成。");
        }
    }

    C++

    #include <iostream>
    
    using namespace std;
    
    class Memory{
    public:
        void check(){
            cout<<"内存自检"<<endl;
        }
        void off(){
            cout<<"内存关闭"<<endl;
        }
    };
    
    class Cpu{
    public:
        void run(){
            cout<<"CPU运行"<<endl;
        }
        void off(){
            cout<<"CPU关闭"<<endl;
        }
    };
    
    class HardDisk{
    public:
        void read(){
            cout<<"硬盘读取"<<endl;
        }
        void off(){
            cout<<"硬盘关闭"<<endl;
        }
    };
    
    class Os{
    public:
        void load(){
            cout<<"操作系统加载"<<endl;
        }
        void off(){
            cout<<"操作系统关闭"<<endl;
        }
    };
    
    class MainFrame{
    private:
        Memory w1;
        Cpu w2;
        HardDisk w3;
        Os w4;
    public:
        void on(){
            cout<<"开机中......"<<endl;
            w1.check();
            w2.run();
            w3.read();
            w4.load();
        }
        void off(){
            cout<<"关机中......"<<endl;
            w1.off();
            w2.off();
            w3.off();
            w4.off();
        }
    };
    
    
    int main(){
        MainFrame w;
        w.on();
        w.off();
        return 0;
    }

    运行截图

  • 相关阅读:
    AutoIt3(AU3)开发的分辨率快速设置工具
    C++开发的基于UDP协议的聊天工具
    C++开发的基于TCP协议的内网聊天工具
    C++开发的数据库连接查询修改小工具
    ueditor的优酷插件模式开发,目前开发了腾讯视频转换插件
    AutoIt3(AU3)开发的装机小工具,实现快速检测以及一些重用快捷操作功能
    AutoIt3(AU3)开发的智能驱动安装工具,用于系统封装,支持参数静默启动
    TortoiseGit与GitHub项目关联设置
    PowerDesigner设计表时显示注释选项
    系统补丁更新导致MVC3.0.0升级到3.0.1的问题解决
  • 原文地址:https://www.cnblogs.com/Arisf/p/15685648.html
Copyright © 2011-2022 走看看