我还存在!。!!!
!
!
这个类是管理全部模块,没什么好说就是个单例,之后还须要UIManager,SceneManager,DataManager。。。
。慢慢来。不是还要上班做死的嘛,坑爹。
MediatorManager = class("MediatorManager")
--构造方法
function MediatorManager:ctor( )
self._mediators = {}
end
--单例
function MediatorManager:Instance()
if self.instance == nil then
self.instance = self.new()
end
return self.instance
end
--添加一个mediator通过Type dataq : int 或者 GameEvent
function MediatorManager:AddMediator(mediatorType,data)
local tempMediator = self._mediators[mediatorType]
--创建mediator
if tempMediator == nil then
if mediatorType == MediatorType.LoginMeditor then
tempMediator = require("Mediator.LoginMediator.LoginMediator").new()
else
print("no this MediatorType : "..mediatorType)
--不存在type直接返回
return
end
--将medator存起来
if tempMediator ~= nil then
self._mediators[mediatorType] = tempMediator
end
end
--发送消息
if tempMediator ~= nil and data ~= nil then
self:SendEvent(data)
end
end
--发送消息
function MediatorManager:SendEvent(data)
print("SendData type : " .. type(data))
--是否发送消息: int GameEvent
if type(data) == "number" then
local e = GameEvent.New(data)
Notifier.Instance:SendEvent(e)
elseif type(data) == "userdata" then
Notifier.Instance:SendEvent(data)
end
end
--移除:注意不能再AddMediator命令里面做RemoverMediator
function MediatorManager:RemoveMediator(moduleType)
local tempMediator = self._mediators[moduleType]
if tempMediator ~= nil then
tempMediator:Exit() --先调用mediator
self._mediators[moduleType] = nil --设置为空
end
end