--[[
mediator:模块进行解耦
]]
local BaseMediator = class("BaseMediator")
local _Evevnts = nil
local _Notics = {}
--构造方法
function BaseMediator:ctor(mediatorName)
--设置c#层事件接口:使用c#事件不使用lua的,这样在c#,lua就可以通过发送事件模块通信
--减少使用最好只在Meditor(Module)需要通信时候用,View里面使用内部的机制
_Evevnts = luaBaseMediator.New(mediatorName)
end
--子类重写:监听事件
function BaseMediator:Notification( )
return {}
end
--子类重写:监督事件处理
function BaseMediator.ProcessEvent(evt)
end
--注册监听
function BaseMediator:RegisterNotifications(tab)
_Notics = tab
for i=1,table.getn(_Notics) do
Notifier.Instance:RegisterEventListener(_Notics[i],_Evevnts)
end
end
--移除所有监听
function BaseMediator:RemoveAllNotifications( )
for i=1,table.getn(_Notics) do
Notifier.Instance:RemoveListener(_Notics[i],_Evevnts)
end
end
--离开
function BaseMediator:Exit( )
self:RemoveAllNotifications()
_Evevnts = nil
_Notics = nil
end
return BaseMediator
-------------------------------------------------------------------------------------------------