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();
参考资料: