lua-users home
lua-l archive

OO in lua new style: inherit

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Hi guys,

I have found a new OO style, it is very convenient, so share it for u, any suggestion is welcome.
===============================================================
Client = {
__debug = false, -- 是否调试模式
__online = false, -- 是否联机在线
__timeout = 5000, -- 默认超时时间
}


function Client:New()
object = {}

-- 对象方法继承
setmetatable(object, self)
self.__index = self

-- 对象属性继承
object.__debug = self.__debug
object.__online = self.__online
object.__timeout = self.__timeout

return object
end

function Client:Delete()
-- release resources
end

function Client:Print(...)
print("Client: ", unpack(arg))
end

-- 继承基类对象
CLIENT_XCHAT = Client:New()

function CLIENT_XCHAT:New()
object = {}

-- 对象方法继承
setmetatable(object, self)
self.__index = self

return object
end

function CLIENT_XCHAT:Release()
self:Delete()
end

function CLIENT_XCHAT:Log(...)
self:Print("CLIENT_XCHAT: ", unpack(arg))
end

-- Example
myClient = CLIENT_XCHAT:New()
myClient:Log("Hello world")


------------------
Andy Tao[陶祖洪]
祖洪测试自动化 http://www.zuhong.cn
天是圆的,地是方的,凡事都要有个规矩!

Attachment: OOLua.lua
Description: Binary data


AltStyle によって変換されたページ (->オリジナル) /