我还存在!。!!!

这个类是管理全部模块,没什么好说就是个单例,之后还须要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