Singleton



Is this good or bad to make singleton in this way:

Type
TMySingleton = class
private

public


end;

function MySingleton: TMySingleton;

implementation

var
gMySingleton

function MySingleton: TMySingleton;
begin
if gMySingleton = nil then
gMySingleton := TMySingleton.Create;
Result := gMySingleton;
end;

.......


initialization
gMySingleton := nil;
end;


.