单例 存在这么一类class, 无论class怎么初始化, 产生的instance都是同一个对象. Code string.toHTMLCode = function(self) return encodeHTML(self) end -- Instantiates a class local function _instantiate(class, ...) -- 单例模式,如果实例已经生成,则直接返回 if rawget(class, "__singleton") then --…
C++ 如果用指针new一个单例,内存不容易释放,所以Java和C#等语言中的单例模式在C++不适用... C++中,new申请的内存必须由delete释放,例如: Point p1; Point *p2 = new Point(); 这里p1没有用new创建,不用delete释放,程序结束后会自动释放,而p2用new创建,必须有对应的delete来释放. 所以单例模式中,我们可以用p1这种方式: class Point { public: static Point *getInstance()…