H
happyjoe
Unregistered / Unconfirmed
GUEST, unregistred user!
说实话我到目前为止并不是很清楚Singleton模式,到网上找了些资料说明如下:
Singleton(单件)模式是一种很有用的设计模式。它的意图的是:仅仅创建一个类
的实例,并提供一个访问它的全局访问点。全局变量使的一个对象易被访问,但
不能防止你实例化多个对象。单件模式的目的就是确保在程序的生命周期内只有
一个实例存在。
如果要实现上面说的目的的话,delphi的vcl里就有现成的例子(参考Themes.pas单元)。
我写个简单例子如下:
...
type
TTest = class
private
public
constructor Create;
end;
TTestClass = class of TTest;
function MyTest: TTest;
implementation
var
InternalObject: TTest;
function MyTest: TTest;
begin
if InternalObject = nil then
InternalObject := TTest.Create;
Result := InternalObject;
end;
...
initialization
finalization
InternalObject.Free;
end.
不知道上面这种方法能不能实现Singleton的所有功能,和Singleton模式比有何不足?
Singleton(单件)模式是一种很有用的设计模式。它的意图的是:仅仅创建一个类
的实例,并提供一个访问它的全局访问点。全局变量使的一个对象易被访问,但
不能防止你实例化多个对象。单件模式的目的就是确保在程序的生命周期内只有
一个实例存在。
如果要实现上面说的目的的话,delphi的vcl里就有现成的例子(参考Themes.pas单元)。
我写个简单例子如下:
...
type
TTest = class
private
public
constructor Create;
end;
TTestClass = class of TTest;
function MyTest: TTest;
implementation
var
InternalObject: TTest;
function MyTest: TTest;
begin
if InternalObject = nil then
InternalObject := TTest.Create;
Result := InternalObject;
end;
...
initialization
finalization
InternalObject.Free;
end.
不知道上面这种方法能不能实现Singleton的所有功能,和Singleton模式比有何不足?