
Saludos
| |||
![]() Hola a todos, hace semanas que vengo usando este patron de diseño y me funciona sin problemas, lei el concepto de singleton y como sabemos crea una instancia unica de una clase para volver a re-usarla sin volver a instanciarla nuevamente, esto comunmente se usa en la instancia de una conexion a la BD, bien todo claro, se entiende el proposito, trata de evitar multipes conexiones a la db PERO creo que es de locos volver a crear una conexion o instancia cada vez que se va hacer una query, no creo que alguien haga eso, la mayoria hace un include a un config.php en la que se encuentra la unica conexion y que sirve a toda la pagina.. entonces de que ayuda singleton si nadie hace lo que se supone que previene???? ![]() Saludos Última edición por Enfermin; 04/01/2011 a las 11:14 Razón: me falto la ñ XD |
| ||||
Respuesta: Duda con patron de diseño Singleton Acá se habla bastante sobre por que no es conveniente usar Singleton para crear conexiones. http://www.forosdelweb.com/f18/duda-...-clase-835534/
__________________ Drupal Argentina |
| ||||
Respuesta: Duda con patron de diseño Singleton Cita: a mi me resulta muy practico dicho patrón, aunque a veces con una clase de métodos estáticos resulta exactamente igual... ![]() si, aún sigo con la duda... ¿en que tipo de escenarios usarían singleton?
__________________ Y U NO RTFM? щ(ºдºщ) No atiendo por MP nada que no sea personal. |
| |||
![]() Cita: Buen dato, ahora se que no es recomendable usar singelton si se va usar una segunda db, empezare a dejar de usarlo pero aun asi no responde mi pregunta y no quisiera abandonar singleton antes de haberlo comprendido por completo
Iniciado por NUCKLEAR ![]() Acá se habla bastante sobre por que no es conveniente usar Singleton para crear conexiones. http://www.forosdelweb.com/f18/duda-...-clase-835534/ ![]() Cita: Bueno los ejemplos mas populares que encontre fueron con BD ![]() ![]() |
| ||||
Respuesta: Duda con patron de diseño Singleton Cita: bueno, pasa lo mismo con el preservativo... sabemos lo que previene, ¿pero quien lo usa por dicha razón? ![]() aún así, yo tampoco entiendo tu duda...
__________________ Y U NO RTFM? щ(ºдºщ) No atiendo por MP nada que no sea personal. |
| |||
Respuesta: Duda con patron de diseño Singleton Depende del uso que se le puede dar, nunca lo apliqué a conexiones a bd. Lo usé en una clase llamada "laboratorio", el cual poseía varios metodos, del tipo getAreas(x), getMedicos(), getAnalisis(x). Dentro del controlador, el cual hacia uso de herencia, dicho singleto se aplicaba en ambos , padre e hijo (si mal no recuerdo). Por lo tanto evitaba la redundancia de instancias de la clase laboratorio. A su vez cuando se modifican sistemas completos en producción, el singleton evita tener que estudiar las lineas para saber si ya se instanció X clase. Esa es mi experiencia con singleton.
__________________ I am Doyle please insert code. |
| ||||
Respuesta: Duda con patron de diseño Singleton No todos los lenguajes tienen las mismas caracterísitcas, que en PHP puedas hacer una clase con el 100% de sus métodos estaticos no significa que lo puedas reproducir en otros lenguajes. Eso signfica que Singleton tiene su utilidad para sobrellevar esa restricción y poder hacer clases que garantizen que solo tengan una instancia. Este patrón es util para diferentes casos / aplicaciones, como por ejemplo un Registro, donde solo quieres tener una sola instancia con los datos. |
| |||
Respuesta: Duda con patron de diseño Singleton Los patrones de diseño son soluciones generales para problemas que ocurren comunmente y son reusables. bien ahora el patron singleton dice lo siguiente Cita: Bien el patron habla de instancias por lo cual estamos tambien hablando de objetos, este es el punto clave.Garantiza que una clase solo tenga instancia (objeto) y proporciona un punto de acceso global a ella Ahora si tomamos en cuenta lo que son los patrones y lo que es el singleton y asumiendo que tu pregunta es una cosa comun como lo es acceder a una base de datos: Cita: Si asi es comunmente en la programacion estructurada eso haces pero si estas trabajando con objetos ?? como garantizo una sola conexion (si fuera el caso) ? y que pueda acceder desde cualquier punto de la aplicacioncreo que es de locos volver a crear una conexion o instancia cada vez que se va hacer una query, no creo que alguien haga eso, la mayoria hace un include a un config.php en la que se encuentra la unica conexion y que sirve a toda la pagina.. entonces de que ayuda singleton si nadie hace lo que se supone que previene???? Pues bien hay es donde usas tu singleton. cuando necesitas que tu clase requiera una sola instancia y quien la usa tambien. pero en lavida real siempre hay una forma de hacer el trabajo sin usarlo ya que el singleton es uno de los patrones de diseño del que mas se abusa y que por su forma de emplearse promueve el acoplamiento y oculta dependecias. En la definicion puse global resaltado por que muchas veces gloabal se compara con el significado que tiene esa palabra en un lenguaje y el patron en realidad se refiere al alcance dentro del dominio no del lenguaje. Hay muchos casos que requieren un singleton pero no necesariamente tiene que ser el patron Singleton la solucion. en otras palabras el problema no es tener un objeto unico si no el uso que se le da al patron el cual en la mayoria de los casos se puede sustituir por otras solucion. Saludos |
| ||||
Respuesta: Duda con patron de diseño Singleton Estoy de acuerdo que en los casos que es necesario conectarse a diferentes bases de datos, el patrón singleton no sirve. En estos casos, se puede utilizar registry como bien habeis dicho, pero también tenemos la opción del patrón Multiton: http://en.wikipedia.org/wiki/Multiton_pattern |
Etiquetas: |