Foros del Web » Programación para mayores de 30 ;) » Programación General »

Patron Singleton o clase estatica

Estas en el tema de Patron Singleton o clase estatica en el foro de Programación General en Foros del Web. Hola gente. Quería plantearles esta pregunta para conocer su opinión, cual es la diferencia entre usar el patron singleton de forma que solo pueda instanciar ...
  #1 (permalink)  
Antiguo 06/03/2009, 08:53
 
Fecha de Ingreso: marzo-2005
Mensajes: 309
Antigüedad: 19 años, 8 meses
Puntos: 1
Patron Singleton o clase estatica

Hola gente.

Quería plantearles esta pregunta para conocer su opinión, cual es la diferencia entre usar el patron singleton
de forma que solo pueda instanciar una clase una sola vez o por el contrario usar una clase estatica con metodos
estaticos? cuando deberia usar uno o el otro?


Saludos...
  #2 (permalink)  
Antiguo 09/03/2009, 02:31
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Patron Singleton o clase estatica

1. El ciclo de vida es diferente.

La instancia del singleton la creas tú, y por tanto controlas su ciclo de vida igual que cualquier otro objeto.
La clase con métodos estáticos la va a crear el ClassLoader y tú no vas a poder controlar su ciclo de vida.

2. Su comportamiento concurrente es distinto.

Si tu aplicación tiene varios threads o se ejecuta en un entorno con varios threads, tendrás que controlarlo. En el caso del singleton, tendrás que controlar tú que todo funciona como debe ser, pero en el caso de los métodos estáticos posiblemente te dé más problemas.

3. Pensando en el futuro.

Si en el futuro necesitas ampliar del objeto único a un "número limitado", es más fácil hacer el cambio de singleton a varios, que de métodos estáticos a varios. (Esto es opinable, pero comunmente aceptado.) Es una situación relativamente frecuente la de tener que ampliar de 1 instancia a un número limitado de instancias.

4. Puedes heredar de un singleton

Puedes crear una clase que herede de la clase que tienes definida como singleton, no tiene nada raro. Sin embargo, dado que no puedes sobreescribir los métodos estáticos, no tiene sentido heredar de la clase de métodos estáticos.

5. Conceptualmente el singleton es "más OO".

Esta es una idea un poco abstracta, pero conceptualmente el uso de una clase con una serie de métodos estáticos se acerca más a la programación procedural que a la orientación a objetos. Esto, por supuesto, puede discutirse que sea una desventaja o no, pero en general si estamos programando en un sistema OO entonces deberíamos movernos lo mejor posibl edentro de ese paradigma.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:37.