Le source suivant présente comment réaliser un objet singleton en Delphi. Lorsque l'on appel le constructeur d'un objet, le compilateur fait un appel à NewInstance pour récupérer un pointeur sur l'objet instancié. Dans le cas présent au premier appel on fait effectivement cet appel. Dans les cas suivant on retourne toujours la même instance.
unit uSingleton;
interface
type
TSingleton=class
public
class function NewInstance: TObject; override;
end;
implementation
var
fSingleton:TSingleton;
{ TSingleton }
class function TSingleton.NewInstance: TObject;
begin
if assigned(fSingleton) then
result:=fSingleton
else
begin
result:=inherited NewInstance;
fSingleton:=TSingleton(result);
end;
end;
end.
