gg.single = function(obj,SingletonCls,objName)
--[[local function getInstance(o,SingletonCls)
o = o or {};
setmetatable(o,SingletonCls);
SingletonCls.__index = SingletonCls;
return o;
end
if SingletonCls.instance == nil then
SingletonCls.instance = getInstance({},SingletonCls);
end
obj[objName] = SingletonCls.instance; --]]
if SingletonCls.instance == nil then
print("new");
SingletonCls.instance = function(o)
o = o or {};
setmetatable(o,SingletonCls);
SingletonCls.__index = SingletonCls;
return o;
end
else
print("old");
end
obj[objName] = SingletonCls.instance();
end
datas.test = nil;
gg.single(datas,Data,"test");
print(datas.test.aa);
datas.test.aa = 300;
datas.test2 = nil;
gg.single(datas,Data,"test2");
--[[local function getInstance(o,SingletonCls)
o = o or {};
setmetatable(o,SingletonCls);
SingletonCls.__index = SingletonCls;
return o;
end
if SingletonCls.instance == nil then
SingletonCls.instance = getInstance({},SingletonCls);
end
obj[objName] = SingletonCls.instance; --]]
if SingletonCls.instance == nil then
print("new");
SingletonCls.instance = function(o)
o = o or {};
setmetatable(o,SingletonCls);
SingletonCls.__index = SingletonCls;
return o;
end
else
print("old");
end
obj[objName] = SingletonCls.instance();
end
datas.test = nil;
gg.single(datas,Data,"test");
print(datas.test.aa);
datas.test.aa = 300;
datas.test2 = nil;
gg.single(datas,Data,"test2");
print(datas.test2.aa);
虽然没有报错 但是 出现了问题,data.test.aa = 300,修改了 aa的值,但是test2的时候依然是100
切换到另外一种方式