Vous êtes sur la page 1sur 8

ESCUELA SUPERIOR POLITCNICA AGROPECUARIA DE MANAB

MANUEL FLIX LPEZ

CARRERA INFORMTICA
SEMESTRE SPTIMO

PERIODO ABR SEP/2015

PROGRAMACIN WEB II
TEMA:
PATRON DE DISEO SINGLETON
AUTORES:
MARIA PAOLA MENDOZA MENDIETA
MARA VICTORIA PRRAGA MERO
JOJAR BARUC VERA CASTRO
JONATHAN AGUSTIN ZAMBRANO ZAMBRANO

FACILITADOR:
ING. VICTOR JOEL PINARGOTE BRAVO

CALCETA, ABRIL 2015

INTRODUCCION

Los patrones de diseo brindan soluciones a una serie de problemas comunes


que se presentan en el desarrollo de software. Algunas soluciones son: facilitan
la reutilizacin y la capacidad de expansin del software, reducen la
complejidad del cdigo y del acoplamiento, y facilitan el mantenimiento. Sin
embargo, estas ventajas solo son posibles si el software es diseado
cuidadosamente. Los patrones de diseo proveen soluciones comprobadas a
problemas comunes y por ende son un mecanismo poderoso para agilizar el
desarrollo de software.
Los patrones de diseo se han convertido en una tcnica popular para el uso
de conocimiento de diseo de software. La motivacin principal de los patrones
de diseo la constituye el hecho de encontrar frecuentemente, en diferentes
diseos, problemas similares. Los patrones de diseo de software son patrones
de organizacin de jerarquas de clases, protocolos y distribucin de
responsabilidades entre clases que caracterizan construcciones elementales
del diseo orientado a objetos. Es decir, un patrn es una estructura de clases
que aparece repetidamente en diversos diseos orientados a objetos, lo cual es
utilizada para resolver un problema determinado de forma flexible y adaptable
dinmicamente. El propsito de un patrn de diseo es capturar el
conocimiento de un diseo de software y hacerlo reusable.

MARCO TERICO
QU ES UN PATRON DE DISEO?
Los patrones de diseo son el esqueleto de las soluciones a problemas
comunes en el desarrollo de software.
En otras palabras, brindan una solucin ya probada y documentada a
problemas de desarrollo de software que estn sujetos a contextos similares.
Debemos tener presente los siguientes elementos de un patrn: su nombre, el
problema (cuando aplicar un patrn), la solucin (descripcin abstracta del
problema) y las consecuencias (costos y beneficios)
Aunque una aplicacin sea nica, tendr partes comunes con otras
aplicaciones: acceso a datos, creacin de objetos, operaciones entre sistemas
etc. (Tedeschi, 2014)

QU TIPOS DE PATRONES EXISTEN?


Existen diversas maneras de agrupar los patrones de diseo. Quiz la ms
extendida es agruparlos segn su propsito. En este caso tendramos las
siguientes categoras:

Patrones creacionales: utilizados para instanciar objetos, y as separar


la implementacin del cliente de la de los objetos que se utilizan. Con
ellos intentamos separar la lgica de creacin

de objetos y

encapsularla.

Patrones de comportamiento: se utilizan a la hora de definir como las


clases y objetos interaccionan entre ellos.

Patrones estructurales: utilizados para crear clases u objetos que


incluidos dentro de estructuras ms complejas.

Como caso especial, se estudiara el patrn de diseo Singleton que pertenece


a los patrones creacionales. (Tedeschi, 2014)

SINGLETON
El Singleton es quizs el ms sencillo de los patrones que se presentan,
tambin uno de los patrones ms conocidos y utilizados. Su propsito es
asegurar que slo exista una instancia de una clase. (Welicki, 2012)

Comnmente un Singleton se implementa definiendo un tipo de objeto que


posee como uno de sus miembros una nica instancia de s mismo y un
mtodo esttico llamado, por ejemplo, getInstancia, el cual retorna una
referencia a esta nica instancia del objeto. Cuando en alguna parte del cdigo
se requiera utilizar un servicio del Singleton, se llamar primero al mtodo
getInstancia para obtener la instancia global del objeto y de esta forma, a los
servicios del objeto por medio de esta instancia. (Montenegro, et. al. , 2012).
En algunas ocasiones es importante para algunas clases el tener una nica
instancia, un ejemplo claro de ello es una impresora, imaginemos que tenemos
solo una impresora instalada en nuestro equipo, a pesar de que existen varios
programas que hacen uso de ella, solamente debe haber un objeto que provea
el acceso al recurso. Para asegurarnos de que una clase tenga una nica
instancia la solucin consiste en hacer responsable a la clase de controlar el
acceso a la misma, si la instanciacin del objeto la realizamos desde la clase
podemos asegurarnos de que nicamente se cree una instancia, proveyendo el
acceso a la instancia nicamente a travs de la clase. (Velzquez, 2010)
DIAGRAMA DE SINGLETON

CARACTERSTICAS

1. Acceso controlado a una nica instancia: Debido a que la clase


Singleton encapsula su nica instancia, puede tener un adecuado
control sobre cuando y como acceden los clientes a ella.
2. Nombre de espacio reducido: El patrn Singleton es una mejora con
relacin a las variables globales, evita el uso de variables globales que
almacenen instancias nicas.
3. Permite mejorar las operaciones y su representacin: La clase
Singleton puede ser extendida utilizando subclases, y es fcil configurar
una aplicacin con una instancia de su clase extendida. Puedes

configurar la aplicacin con una instancia de la clase que necesitas en


tiempo de ejecucin.
4. Permite un nmero variable de instancias: En caso que haya un
cambio de perspectiva y se desee permitir un mayor nmero de
instancias se puede utilizar la misma aproximacin para controlar el
nmero de instancias que la aplicacin utilic solo es necesario
modificar la operacin que concede el acceso. (Velzquez, 2010)
Existen diferentes ejemplos para poder explicar el funcionamiento del patrn
singleton, uno muy claro de la utilidad de este patrn sera una clase para
trabajar con bases de datos. Si cada vez que necesitemos conectarnos
tenemos que crear una instancia del objeto, estaramos aumentando el
consumo de memoria de nuestra aplicacin de una manera innecesaria. Lo que
normalmente suele hacer la gente es utilizar una variable global que sera una
instancia de ese objeto, pero el uso de variables globales no es recomendado
por multitud de razones. (Escolar, 2012)
Para conseguir este objetivo lo primero que se tiene que hacer es no permitir
crear instancias del objeto, para esto basta con "ocultar" el constructor
declarndolo como "private". Lo siguiente es crear un mtodo esttico que nos
devuelva una instancia de ese objeto, si existe una ya creada la devolvemos y
si no creamos una nueva. (Escolar, 2012)

ste sera un prototipo de una clase para trabajar con una base de datos.
Como se puede ver, ya no se utilizar "$db = new Database();", por lo que
aseguramos el ahorro de memoria. En su lugar para obtener el objeto que se
desea se tendr que hacer:

Siempre que se llame al mtodo esttico "getInstance()" se comprueba que no


exista ya una instancia de este objeto, si no existe se crea una, se guarda
como una propiedad esttica de la clase y se devuelve.
Otra forma de ejecutar el cdigo anterior sin tener que inicializar ninguna
variable:

Como se puede apreciar, utilizando este patrn adecuadamente, se permite


ahorrar memoria, se tendra un cdigo ms limpio y libre de variables globales,
que pueden ser modificadas por accidente en otros procesos. (Escolar, 2012)

BIBLIOGRAFA
Montenegro, I; Rodrguez, L; Salazar, G. 2012. Uso de patrones de diseo de
software: un caso prctico. San Jos, CRC. Ingeniera Revista de la
Universidad de Costa Rica. Vol. 22. Num. 2. p45- p47.

Tedeschi, N. 2014. Qu es un Patrn de Diseo?. (En lnea). EC. Consultado,


19
de
abr.
2015.
Formato
HTTP.
Disponible
en
https://msdn.microsoft.com/

Welicki, L. 2012. El Patrn Singleton. (En lnea). EC. Consultado, 19 de abr.


2015. Formato HTTP. Disponible en https://msdn.microsoft.com/

Velazquez, A. 2010. Patrones de Diseo Singleton. Consultado, 19 de abr.


2015.
Formato
PDF.
Disponible
en
https://lapalejandro.files.wordpress.com

Escolar, F. 2012. Patrones de Diseo: Singleton. Consultado, 19 de abr. 2015.


Formato HTTP. Disponible en http://programandonet.com/web/patronesdiseno-singleton/

Vous aimerez peut-être aussi