外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。本文以计算机为例,用Matlab代码实现外观模式。计算机包括CPU、内存以及硬盘等这些部件。用户在操作计算机时,不需要了解计算机部件的使用方法,只需要操作计算机的按钮,计算机部件交给计算机内部去做即可。这样降低了用户操作的复杂性。
CPU.m
classdef CPU methods function startup(~) disp("CPU is on"); end function shutdown(~) disp("CPU is off"); end end end
Memory.m
classdef Memory methods function startup(~) disp("Memory is on"); end function shutdown(~) disp("Memory is off"); end end end
Disk.m
classdef Disk methods function startup(~) disp("Disk is on"); end function shutdown(~) disp("Disk is off"); end end end
Computer.m
classdef Computer properties cpu mem disk end methods function obj = Computer() obj.cpu = CPU(); obj.mem = Memory(); obj.disk = Disk(); end function startup(obj) obj.cpu.startup(); obj.mem.startup(); obj.disk.startup(); disp("Computer is on"); end function shutdown(obj) obj.disk.shutdown(); obj.mem.shutdown(); obj.cpu.shutdown(); disp("Computer is off"); end end end
测试代码
computer = Computer(); computer.startup(); computer.shutdown();