這是 OOP (物件導向程式設計[1]) 相關連結的集合。
學習資料
相關討論
功能實作
- 較舊的 Lua 版本
功能模組
- [lclass] - 採用類別的精簡 Lua (73 SLOC),靈感來自 Lua 的輕量級設計,功能包含
- YetAnotherClassImplementation - 支援帶有以下功能的類別
- 建構式/初始化
- 簡單的繼承
- 虛擬方法
- 存取繼承的屬性控管
- 類型轉換
- MultipleInheritanceClasses - 支援帶有以下功能的類別
- 建構式/初始化
- 多重繼承
- 共用衍生 (類似於 C++ 虛擬)
- 處理模糊性和繼承屬性
- ObjectLua - 支援物件原型和帶有以下功能的類別
- 建構式/初始化
- 簡單的繼承
- 強制根類別
Object
- 透過 function
super
,存取覆寫方法中原本繼承實作,類似於 Java 和 Python 類別
- KlassModule - 支援帶有以下功能的類別
- 建構式和解構式
- 簡單的原型為基礎繼承
-
isA
方法 - 搭配 Lua 5.2 使用
- [LOOP] - 漸進式地支援以下功能的輕量級模組
- 具備建構式/初始化支援功能的
loop.base
類別 - 具備簡單繼承的
loop.simple
類別 - 具備多重繼承的
loop.multiple
類別 - 有繼承,且從超類別複製成員的
loop.cached
類別(較快的函數解析度和元方法繼承) - 有對成員私人和受保護存取權的
loop.scoped
類別
- [lua-Coat] - [Coat](一種 Perl5 的輕量級 OO 模型)的埠口,支援
- 建構式/初始化
- 多重繼承
- 方法修飾詞
- 自省操作
- 屬性檢查
- 針對角色和類型宣告的附加支援
- [MiddleClass] - 支援包含
- [OWL] - 提供有以下功能的類別實作的單一檔案模組
- 建構函式/初始化(也可按各個執行個體基礎覆寫)
- 多層級繼承(可一路到頂層超類別)
- 容易使用,有兩個主要函式:class() 和 instance()
- 常見 OOP 方法:is_a()、kind_of() 和 instance_of()。
- 私人類別表格(由子類別繼承,但執行個體物件沒有)
- 透過 add_property_callback() 方法,可輕鬆實作基本元方法
- 包括幾個範例和文件說明
- 相容於 Corona SDK(提供顯示物件類別),以及非 Corona 專案
- [30log] - 單一檔案模組。其特點在於
- 有命名和無命名類別
- 建構式/初始化
- 屬性的預設值
- 單一繼承
- 針對 mixin 的基本支援
- [lupy] - 單一檔案模組(~50 sloc,~2 kb)。它是一個 Python 樣式的類別實作,有幾個 Ruby 功能
- 建構式/初始化
- 單一繼承
- 基本 mixin 支援
- 遺失方法處理常式
- 支援猴子補丁
- 基於詞彙範圍的封裝
- 基於繼承樹的類型測試
- 支援名稱空間和內部類別
- [classy] - 有
- 建構函式/初始化(有效率,必要資料在類別定義期間預先計算)的單一檔案模組(~460 sloc,~14 kb)
- 多重繼承(依廣度優先搜尋順序尋找方法)
- 有效率的方法呼叫(在類別定義期間預先計算方法尋找)
- 支援猴子補丁(對基本類別的更新會傳遞到衍生類別)
- 多方法(多於一個多形參數的函式)
- [lua-objects] - 有
- 全新!建構函式/解構函式的可自訂方法和名稱
- 全新!多重繼承(一路到頂層)
- 全新!處理繼承屬性的含糊性
- 全新!對 mixin 的進階支援
- 全新!預設繼承類別 Class
- 取得器和設定器
- 正確處理超類別中遺失的方法 � superCall()
- 最佳化(來自超類別的方法可在類別/執行個體上快取)
- 常見方法/屬性 � .is_class、.is_instance、.isa()、.supers、.class
-
- [dmc-objects] 是為 Corona SDK 而打造,
lua-object
之子類別的集合。它們顯示下列範例:
- 自訂建構函式/初始化/解構函式
- 自訂建構函式/解構函式名稱
- 使用 mixin,事件 mixin ([lua-events-mixin]) 提供事件功能(add/removeEventListener 等)
-
dmc-objects
類別,多個使用 dmc-objects
的 Corona 應用程式
- [PLoop] - 強大的 C# 風格 OOP 系統(約 12391 sloc 和 639 kb),具有:
- 提供原型、屬性、環境、列舉、結構、介面、類別等的完整 OOP 系統。
- 完整且可自訂的型別驗證、函式引數驗證、方法重載等。
- 執行緒池、集合、序列化及其他供一般用途使用的功能。
- 網頁服務、mqtt 服務及其他功能的架構。
- [SIMPLOO] - 簡易的 Lua 物件導向(約 500 sloc 和 10 kb 縮小後大小)
- 使用類似其他物件導向語言的簡易語法,或使用傳統的 lua 表格。
- 定義建構函式和終結子。終結子在執行垃圾回收時呼叫(使用 newproxy 也可在 Lua 5.1 中使用)。
- 關鍵字例如 private、public、abstract、static、const 和 meta(定義類別內 metamethod)。
- 多重繼承。會警告名稱有歧義的情況。母類別的成員會儲存在子類別中直接參考,以保持快速執行。
- 透過使用句點分隔的類別名稱定義類別命名空間。從其他命名空間匯入類別。定義匯入類別的別名。使用函式環境。
- 包含生產模式組態設定,可用於停用非必要的程式碼片段,進一步加速函式庫。
- 類別資料在定義期間會預先運算。由於此資料的簡易深度複制,建構時間為 O(n),其中 n = 類別成員的數量。
- 命名空間會儲存在巢狀全域表格中以便輕鬆存取。類別具有協助方法,例如:get_name()、get_class()、instance_of()。
- [oop.lua] - 支援 Lua 中基於原型的編程函式庫。
- [Luaoop] - 單一檔案模組,簡單易懂的基於類別的 OOP 函式庫
- [POOL] - Poorman 的物件導向 Lua
- 單一檔案模組
- 類別範本表格
- 建構函式/解構函式
- 繼承/多型
- 運算子
範例實作
- 另請參閱
近期異動 · 喜好設定
編輯 · 歷史記錄
上次編輯時間為 2023 年 12 月 26 日早上 3:36 GMT (比較)