Matlab外觀模式(Facade)

外觀模式(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();

運行結果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章