lua中最好不要使用继承

quick中提供了class 的语法糖,不建议在大型项目特别是服务器中使用。无法保证继承的效果,你会发现以下的问题

local a = class('a')
function a:ctor()
    self.m = 0
end

function a:setm(m)
    self.m = m
end

function a:checkm()
    print self.m
end

class b = class('b', a)

local tmp = b.new()
b:setm(8)
--在去调用checkm的时候发现仍然是0

所以在lua中最好的方式是使用组合,而不要继承。

https://www.processon.com/i/568c6ea4e4b0e51d149a085f
这个网站解决了大家开始设计阶段的问题,轻量级的各种设计模型,强烈推荐。

你可能感兴趣的:(lua游戏开发实践指南)