我以前是这么做的,scene做Controler,主要处理程序逻辑; layer做View,主要处理界面显示;有一些单例的dataManager做Model,管理数据。
但现在碰到了一点小问题,就是scene做Controler的话,由于scene的生命周期是依赖于界面显示的,导致controler只能在进入某一个页面才能生效,不能处理某些从程序开始运行就需要处理的逻辑。
想听下大家是如何应用mvc的,如何处理我上面提到的情况?
官方自带mvc的sample的,虽然我不用那个。
想要开始运行就处理逻辑,用table然后填方法再声明成全局就可以啦
--app.controller.Controller.lua
--这个模版可以有多个实例
local Controller = {}
Controller.__index = Controller
function Controller:create()
local ret = {}
setmetatable(ret, Controller)
ret:init_()
return ret
end
function Controller:init_()
end
function Controller:doSomething()
end
return Controller
```
然后在某个地方
G_Controller = require("app.controller.Controller"):create() --创建
G_Controller:doSomething() --调用方法
G_Controller = nil --销毁
```