軟體設計-外觀模式
阿新 • • 發佈:2021-12-13
計算機開啟
在計算機主機(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("作業系統載入"); } publicvoid 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; }
執行截圖