Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #12  
Antiguo 16-02-2009
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 27
Delphius Va camino a la fama
Hola noob, está bien. La cuestión es que puedes tener tantas variables como necesites. Pero si te fijas, todas "apuntan" a un mismo objeto. Por tanto, se trata de una única instancia que es referenciada desde diversos puntos.

La alternativa de Al evita estar definiendo variables, y trabajar con una única... la que se declara como pública en dicha unidad. Pero si la declaración de la clase es de acceso público (interface), nada impide declarar una nueva variable y crearla. Rompiendo así el principio de una única instancia (a menos claro que dicha clase redefina los métodos tal como los he señalado en mi ejemplo).

Obviamente, el peligro de tener muchas variables es el manejo de ciclo de vida. Si alguna de esas variables se libera, se libera el singleton. Pero lo bueno de ésto es que si uno aprovecha sabiamente el método de clase NewInstance y el método FreeInstance puede hacer que se ante un posible Free, no se libere el único objeto que existe.

Para entender apropiadamente como funciona el patrón añade muchas variables, y algunos breackpoint en el momento del Create... si vas siguiendo con F7 notarás que en el primer Create (si es que no se hace uso de un Create, en initialization) se crea la única instancia. En los sucesivos Create, lo que se hace es apuntar a dicha instancia. Esto es así debido a la simple condición:

Código Delphi [-]
if Assigned(Instancia) then ... result := Instancia

Lee el artículo que te he hecho llegar. Eso te permitirá comprender mejor el patrón.

No es por ser molesto, pero copiar por copiar no sirve. Hay que leer un poquito.

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



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Calentamiento global Crandel La Taberna 0 20-01-2008 16:13:14
Hook global pepelaalfa API de Windows 2 08-12-2005 18:24:27
Variable global jluisx OOP 3 27-10-2005 22:31:22
variable global existe en php ? sarga PHP 1 27-06-2004 17:47:07
Procedimiento global Carlos Arevalo Varios 2 17-11-2003 18:55:00


La franja horaria es GMT +2. Ahora son las 11:30:32.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi