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