Ver Mensaje Individual
  #15  
Antiguo 17-02-2009
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Reputación: 25
Delphius Va camino a la fama
¡Hola!

Vuelvo de una rica cena y me encuentro con esto de postre.

Debo decir que ambos postres son deliciosos.
En efecto, sus soluciones son más convenientes. Nomás yo me he limitado a dar lo "básico", en cierto modo, de como se puede enfocar el problema.

Mientras estaba realizando un estudio y análisis (hace ya unos meses) del patrón me dí cuenta de los problemas que implica el esquema que yo había estudiado. Por ello empecé a practicar diferentes enfoques y me dí cuenta de que hay muchas formas, algunas más "ingeniosas" que otras.

Llegué a opciones similares como la que han descrito, y una de las que más me convence a mi es tener una función GetSingleton o GetInstance como la de roman para acceder a un único objeto.

Mis prácticas me llevaron por interfaces, que es una opción bastante elegante y que no requiere de mucho lío y código ya que como bien señala roman, gracias al conteo de referencia es que se consigue liberar todo automáticamente. Y también practiqué llevandolo hacia herencia, es decir algo como:

Código Delphi [-]
Type
  TAbstractSingleton = class
   ...
   end;

  TConcreteSingleton = class(TAbstractaSingleton)
  ...
  end;

Detuve mis avances cuando quise meterme en un esquema thread-safe debido a que no domino el tema de los hilos, el uso de secciones críticas, mútex y cosas por el estilo. Encontré algunos artículos que mencionaban algo al respecto pero no termino de comprender el tema.
Si alguien se anima a enriquecer el hilo con una versión tread-safe les estaría agradecido (y también noob).

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita