zoukankan      html  css  js  c++  java
  • LUA_OBJECT

    --
    -- classic, object model.
    --
    -- Copyright (c) 2014, rxi
    --
    -- This module is free software; you can redistribute it and/or modify it under
    -- the terms of the MIT license. See LICENSE for details.
    --
    -- Base object model used with Kong, see [classic github repo](https://github.com/rxi/classic) for usage information

    local Object = {}
    Object.__index = Object

    function Object:new()
    end

    function Object:extend()
    local cls = {}
    for k, v in pairs(self) do
    if k:find("__") == 1 then
    cls[k] = v
    end
    end
    cls.__index = cls
    cls.super = self
    setmetatable(cls, self)
    return cls
    end
    function Object:implement(...)
    for _, cls in pairs({...}) do
    for k, v in pairs(cls) do
    if self[k] == nil and type(v) == "function" then
    self[k] = v
    end
    end
    end
    end
    function Object:is(T)
    local mt = getmetatable(self)
    while mt do
    if mt == T then
    return true
    end
    mt = getmetatable(mt)
    end
    return false
    end
    function Object:__tostring()
    return "Object"
    end
    function Object:__call(...)
    local obj = setmetatable({}, self)
    obj:new(...)
    return obj
    end
    return Object
  • 相关阅读:
    SMTP协议简介
    Debian
    TCP/IP协议基础
    CentOS(Community ENTerprise Operating System)
    IO
    【备忘】Windows网络命令行操作
    repeater中绑定dropdownlist事件
    MultipleActiveResultSets
    .NET UEditor使用方法
    Asp.net中时间格式化的几种方法
  • 原文地址:https://www.cnblogs.com/justart/p/12383886.html
Copyright © 2011-2022 走看看