classdef MyClass < handle
properties (Access = private)
instance
end
methods
function obj = MyClass(instance)
if nargin < 1
instance = MyClassV1();
end
obj.instance = instance;
end
function v = getValue(obj)
v = obj.instance.getValue();
end
function v = add(obj,a,b)
v = obj.instance.add(a,b);
end
end
end
------------------------------------------------
classdef MyClassV1 < handle
properties
value (1,1) double
end
methods
function obj = MyClassV1()
obj.value = 0;
end
function v = getValue(obj)
v = obj.value;
end
function v = add(obj,a,b)
v = a + b;
obj.value = v;
end
end
end
------------------------------------------------
classdef MyClassV2 < handle
properties
value (1,1) double
end
methods
function obj = MyClassV2()
obj.value = 100;
end
function v = getValue(obj)
v = obj.value;
end
function v = add(obj,a,b)
v = a - b;
obj.value = v;
end
end
end
------------------------------------------------
>> obj = MyClass;
>> obj.getValue()
ans =
0
>> obj.add(1,2)
ans =
3
>> save tmp obj
>>
>> clear obj
>> load tmp
>> obj.getValue()
ans =
3
>> obj.add(1,2)
ans =
3
>> newObj = MyClass;
>> newObj.getValue()
ans =
100
>> newObj.add(1,2)
ans =
-1
Best Answer