欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Matlab空对象模式

程序员文章站 2022-03-26 12:28:52
在空对象模式(Null Object Pattern)中,一个空对象取代 NULL 对象实例的检查。Null 对象不是检查空值,而是反应一个不做任何动作的关系。这样的 Null 对象也可以在数据不可用的时候提供默认的行为。 AbstractObject.m RealObject.m NullObje ......

在空对象模式(null object pattern)中,一个空对象取代 null 对象实例的检查。null 对象不是检查空值,而是反应一个不做任何动作的关系。这样的 null 对象也可以在数据不可用的时候提供默认的行为。

abstractobject.m

classdef abstractobject < handle
    methods(abstract)
        operation(~);
    end
end

 realobject.m

classdef realobject < abstractobject
    properties
        name
    end
    methods
        function obj = realobject(name)
            obj.name = name;
        end 
        function operation(obj)
            disp("this is object " + obj.name + " operation.");
        end
    end
end

nullobject.m

classdef nullobject < abstractobject
    methods
        function operation(~)
            disp("this is nullobject");
        end
    end
end

objectfactory.m

classdef objectfactory < handle
    properties(constant)
        names = ["matlab","pattern","design"];
    end
    methods(static)
        function res = getobject(name)
            if(sum(objectfactory.names == name) > 0)
                res = realobject(name);
            else
                res = nullobject();
            end
        end
    end
end

test.m

obj1 = objectfactory.getobject("matlab");
obj1.operation();
obj2 = objectfactory.getobject("null");
obj2.operation();

参考资料: