外觀模式(Facade Pattern)隱藏系統的複雜性,並向客戶端提供了一個客戶端可以訪問系統的介面。本文以電腦為例,用Matlab代碼實現外觀模式。電腦包括CPU、記憶體以及硬碟等這些部件。用戶在操作電腦時,不需要瞭解電腦部件的使用方法,只需要操作電腦的按鈕,電腦部件交給電腦內部去做 ...
外觀模式(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();