-- 一个用来实现多继续的方式。
-- 通过注入函数方法,来达到lua层的多继承
local ReggierIOC = {}
-- 注册基类
function ReggierIOC:RegisterBase(base)
if nil == self.dataList then
self.dataList = {}
end
if nil == self.funNameDic then
self.funNameDic = { -- 可重写调用函数名称字典
DoSomeFun = "DoSomeFun", -- 处理一些事情
}
end
-- base.key 作为字典使用唯一key来存储数据
if nil == self.dataList[base.key] then
self.dataList[base.key] = base
-- 注册 funNameDic 函数接口
for _, value in pairs(self.funNameDic) do
local v = rawget(getmetatable(base),"__index")
if nil == rawget(v,value) then
self[value] = function ()
end
rawset(v,value,self[value])
end
end
end
end
return ReggierIOC
06-02
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交