Singleton
From Multi Theft Auto: Wiki
This class allows you to restrict the instantiation of a specific class to one object.
Requirements
sbx320's classLib, can be found Here[1]
OOP on
Code
Singleton = {} function Singleton:getSingleton(...) if not self.ms_Instance then self.ms_Instance = self:new(...) end return self.ms_Instance end function Singleton:new(...) self.new = function() end local inst = new(self, ...) self.ms_Instance = inst return inst end function Singleton:isInstantiated() return self.ms_Instance ~= nil end function Singleton:virtual_destructor() for k, v in pairs(super(self)) do v.ms_Instance = nil v.new = Singleton.new end end
Call class methods by newest instance
Example
-- DEFINE CLASS TestClass = inherit(Singleton) function TestClass:run() -- DO SOMETHING end TestClass:getSingleton():run()