Delphi Singleton Pattern [cerrado]

Sé que esto se discute muchas veces en todas partes de la comunidad, pero no puedo encontrar una implementación simple y agradable de un Patrón Singleton en Delphi. Tengo un ejemplo en C #:

public sealed class Singleton {
  // Private Constructor
  Singleton( ) { }

  // Private object instantiated with private constructor
  static readonly Singleton instance = new Singleton( );

  // Public static property to get the object
  public static Singleton UniqueInstance {
    get { return instance;}
}

Sé que no hay una solución tan elegante como esta en Delphi y vi mucha discusión sobre no poder ocultar correctamente el constructor en Delphi (hacerlo privado), por lo que tendríamos que anular los métodos NewInstance y FreeInstrance. Algo en ese sentido creo que es la implementación que encontré enhttp: //ibeblog.com/? p = 65:

type
TTestClass = class
private
  class var FInstance: TTestClass;
public                              
  class function GetInstance: TTestClass;
  class destructor DestroyClass;
end;

{ TTestClass }
class destructor TTestClass.DestroyClass;
begin
  if Assigned(FInstance) then
  FInstance.Free;
end;

class function TTestClass.GetInstance: TTestClass;
begin
  if not Assigned(FInstance) then
  FInstance := TTestClass.Create;
  Result := FInstance;
end;

¿Cuál sería su sugerencia con respecto al Patrón Singleton? ¿Puede ser simple y elegante y seguro para hilos?

Gracias

Respuestas a la pregunta(6)

Su respuesta a la pregunta