![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Cita:
Muchas gracias a todos por dar estas ricas versiones del patrón Singleton. Me gusta la opción de acceder al objeto global mediante la función GetInstance y no tener que llamar al método constructor. Cita:
1) Cuando en la sección de inicialización de tu unidad Singl haces: Instance := TSingleton.CreateInstance; ¿se crea realmente una instacia? Lo digo porque el método constructor CreateInstance no está implementado. 2) ¿Los métodos GetAuthor y SetAuthor del interfaz ISingleton no deberían de ser virtuales y abstractos para luego ser redefinidos en TSingleton? Saludos. Última edición por noob fecha: 17-02-2009 a las 08:57:08. |
|
#2
|
||||
|
||||
|
Cita:
No importa qué constructor uses, el mero hecho de serlo hace que el compilador inserte entre el begin y la primera instrucción (si la hay) una llamada a la función _ClassCreate que es la encargada de construir la base del objeto (mediante el método NewInstance). En otras palabras, el efecto de Create y de CreateInstance es exactamente el mismo: ambos tienen implementación vacía, pero por estar etiquetados como constructores generan la llamada a _ClassCreate. El único objetivo de introducir CreateInstance es el de invalidar el constructor público para que no pueda usarse externamente. Cita:
// Saludos |
|
#3
|
|||
|
|||
|
Cita:
Roman más dudas: 1) Siempre me gusta separar cada clase en una unidad distinta, en el caso de la unidad Singl2 ¿lo has hecho en una sola unidad a propósito o lo has hecho así por tenerlo todo más visible a la hora de verlo en el foro? 2) ¿No puedo acceder al método Author por medio de una propiedad tal que así?
3) Otra cosa, para usar la instancia desde fuera del interfaz, sería así, ¿verdad?
Siento preguntar cosas que tal vez sean muy básicas. Gracias. Última edición por noob fecha: 17-02-2009 a las 20:53:11. |
|
#4
|
||||
|
||||
|
Interesante el tema, me tomo la libertad de contestarte tus ultimas preguntas noob.
1. Singl2 es la version 2 del ejemplo que roman coloco. 2 y 3. La forma de acceder al singleton seria en todo caso asi . ya que GetInstance es una funcion que te retorna la clase. talvez un nombre mas practico podria ser
Que fue como Al Gonzalez lo recomendo en su propia version. Saludos. |
|
#5
|
||||
|
||||
|
¿Y a qué viene eso?
Que conste que no estoy en contra de revisarla de vez en cuando¡, pero tanta insistencia... 1 y 2 Perece que se te quedó el teclado "atascado"... ![]() ![]() ![]()
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. Última edición por Neftali [Germán.Estévez] fecha: 20-03-2009 a las 16:45:20. |
![]() |
|
|
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 |
|