我经常使用 Lua 和 Corona SDK,虽然我喜欢它作为一种语言,但我意识到我的代码可能会因为回调调用回调等而变得非常混乱。
我想知道是否有任何设计模式或库(如 JavsScript 的 async.js)有助于减少问题。
一个典型的例子是使用 Corona 的转换调用:
transition.to(obj,{... onComplete=function()
transition.to(obj,{... onComplete=function()
if foo then
transition.to(obj,{... onComplete=function() ... end})
else
transition.to(obj,{... onComplete=function() ... end})
end
end})
end})
我发现代码很快变得非常密集,但是内部闭包通常依赖于外部闭包的变量。我很欣赏自律是创建干净代码的一个重要因素,但是拥有一个使用自律强加的结构很有用。除了命名闭包之外,还有没有人遇到过一种有用的管理方法?