Desde hacía bastante tiempo que quería publicar mi opinión sobre singleton, y hoy aquí está, quiero agregar que este texto es parte de un paper que publiqué hace unos días llamado Programación orientada a objetos en php (puedes verlo en la lista de nuestros pdf).
Singleton es una forma de
manejar las clases, que evita la creación de múltiples instancias, en cualquier
momento uno puede obtener la instancia que se creó originalmente, de modo que
en cualquier lugar tienes acceso a la instancia, sin necesidad de ir llevando
la variable que tiene la instancia de un lugar al otro, simplemente se adquiere
la instancia utilizando una función estática.
Ahora bien, estoy
completamente encontra de singleton, dado que suele llevar a un terrible uso de
las clases, como dije al principio una clase es un modelo abstracto de una
serie de objetos que son de la misma clasificación, no obstante si hubiese un
solo tipo de estos objetos no sería necesario crear una clasificación de los
mimos, veamos, como dije al principio si solo hubiese un tipo de vaso, con una
opacidad específica, un tamaño específico una forma específica (osea todos los
vasos del mundo fueran exactamente iguales y no se los pudiese hacer de forma
diferente) entonces nosotros no necesitamos crear una representación de los
vasos, ya que el mismo vaso sería la representación. Pero al haber muchos vasos
diferentes nosotros tenemos una representación global que dictamina que todos
son vasos, por más que sean diferentes.
Singleton limita la
creación de objetos de una clase a uno solo, y de esta forma simple y
llanamente digo que para hacer esto es lo mismo que crear todos las propiedades
y funciones de una clase como estáticas, de esta forma tenemos solo una
“instancia”.
La mayoría de las clases
que usan singleton ni siquiera deberían ser clases, porque no es necesaria la
implementación de una estructura de este tipo para eso.
En muy rara vez se puede
utilizar singleton correctamente, y gracias al uso indebido de singleton suceden
cosas como el problema que hay hoy en día en los frameworks que será explicado
luego.
Un saludo para todos y espero les haya gustado la publicación de hoy. Hace tanto que no publicaba una entrada que bueno tendría que mandar una cantidad de saludos muy grande xD, por lo que solo saludaré a algunos, Snifer (snifer-l4bs) a Cody, a la gente de underc0de que siempre apoya mis proyectos, y a los lectores que siempre están :)
0 comentarios:
Publicar un comentario