设计模式练习(10)——外观模式
2017-01-20 15:38
1696 查看
外观模式
一、题目:在计算机主机(MainFrame)中,只需要按下主机的开机按钮(on()),就可以调用其他硬件设备和软件的启动方法,如内存(Memory)的自检(check()),CPU的运行(run()),硬盘(Harddisk)的读取(read()),操作系统(OS)的载入(load())等,如果某一过程发生错误,则计算机启动失败,使用外观模式模拟该过程绘制类图并编程实现。
(1)实现给出外观模式结构视图。
(2)给出该实例类图及代码实现。
二、所用模式结构视图:
三、实例类图:
四、实例实现代码:
(因为区分,所以在类的前面加了Gj19)
主窗口类:外观类
package FacadePattern; /** * 主窗口类:外观类 * @author gong * */ public class Gj19Mainframe { private Gj19Memory gj19memory; private Gj19CPU gj19cpu; private Gj19HardDisk gj19disk; private Gj19OS gj19os; public Gj19Mainframe() { gj19memory = new Gj19Memory(); gj19cpu = new Gj19CPU(); gj19disk = new Gj19HardDisk(); gj19os = new Gj19OS(); } public void on(){ gj19memory.check(); gj19cpu.run(); gj19disk.read(); gj19os.load(); } public void off(){ gj19memory.off(); gj19cpu.off(); gj19disk.off(); gj19os.off(); } }
Memory类:子系统类
package FacadePattern; /** * Memory类:子系统类 * @author gong * */ public class Gj19Memory { public void check(){ System.out.println("Memory is checking....."); } public void off(){ System.out.println("Memory off....."); } }
CPU类:子系统类
package FacadePattern; /** * CPU类:子系统类 * @author gong * */ public class Gj19CPU { public void run(){ System.out.println("CPU is running....."); } public void off(){ System.out.println("CPU off....."); } }
HardDisk(硬盘)类:子系统类
package FacadePattern; /** * HardDisk(硬盘)类:子系统类 * @author gong * */ public class Gj19HardDisk { public void read(){ System.out.println("HardDisk is reading....."); } public void off(){ System.out.println("HardDisk off....."); } }
操作系统OS类:子系统类
package FacadePattern; /** * 操作系统OS类:子系统类 * @author gong * */ public class Gj19OS { public void load(){ System.out.println("OS is loading....."); } public void off(){ System.out.println("OS off....."); } }
外观模式客户端测试类
package FacadePattern; /** * 外观模式客户端测试类 * @author gong * */ public class Gj19Client { public static void main(String[] args) { Gj19Mainframe gj19Mainframe = new Gj19Mainframe(); System.out.println("电脑开机...."); gj19Mainframe.on(); System.out.println("电脑关闭...."); gj19Mainframe.off(); } }
五、运行结果:
相关文章推荐
- 设计模式笔记10:外观模式(Facade Pattern)
- 【设计模式】学习笔记10:外观模式(Facade)
- 设计模式(10)-外观模式
- golang设计模式(10)外观模式
- 设计模式(10)-结构型-外观模式(Facade)
- 【设计模式】10、外观模式
- 设计模式(10)——外观 Facade
- 设计模式(10) 门面/外观模式(简单入门 结构模式)
- Java设计模式10——外观模式
- 设计模式10:外观模式【结构型】
- java学习笔记-设计模式10(外观模式)
- [设计模式] 10 外观模式 facade
- 【设计模式】—-(10)外观模式(结构型)
- C语言和设计模式(外观模式)10
- IOS设计模式学习(10)外观
- 重学java23种设计模式(10)外观模式
- 设计模式10: Facade 外观模式(结构型模式)
- Java设计模式10——外观模式
- 【设计模式 - 10】之外观模式(Facade)
- 设计模式(10)——Facade(外观)模式