|
楼主 |
发表于 2015-4-21 18:15:37
|
显示全部楼层
封装,我的理解,就是只能通过固定方式改或者读,不能通过其他方式改或者读,避免其他模块对本模块的内容进行操作的做法。
曾经看过半本java的书,但是没看太懂,所以不知道理解的对不对
看了wait.lua的如下代码:
function time (seconds)
local id = "wait_timer_" .. GetUniqueNumber ()
threads [id] = assert (coroutine.running (), "Must be in coroutine")
local hours, minutes, seconds = convert_seconds (seconds)
check (AddTimer (id, hours, minutes, seconds, "",
bit.bor (timer_flag.Enabled,
timer_flag.OneShot,
timer_flag.Temporary,
timer_flag.ActiveWhenClosed,
timer_flag.Replace),
"wait.timer_resume"))
return coroutine.yield ()
end -- function time
这个应该是比较简单的了吧?可是还是看不大懂
感觉好像是利用了mush里的timer,是吗?
然后有个协程的yield,就是挂起是吧。所以你刚才写的程序才能继续运行而不等待,因为协程挂起了
换句话说,本协程挂起了,本协程内的代码不运行了,其他协程的代码不受影响,因此就继续创建了下一个协程。
有点懂了好像......仅仅是好像...... |
|