El último de los patrones de creación y uno de los patrones más sencillos de entender y quizás el más utilizado. Hasta ahora hemos visto, los siguientes patrones de creación:
Y ahora Singleton, el cual es el encargado de crear una sola instancia de una clase, proporcionando un único punto de creación y bloqueando la generación de instancias nuevas.
ESCENARIO
Para explicar este patrón, vamos a pensar en un servidor de aplicaciones, el cual puede tener varias aplicaciones, pero cada vez que le hacemos una petición, único punto de acceso, nos devuelve la misma instancia en todas las peticiones a una url en concreto
CUANDO USARLO
- cuando sólo necesitemos una única instancia de una clase y deba ser instanciable a las demás clases por un punto de acceso conocido
ESTRUCTURA
ACTORES
- Singleton: es el responsable de crear y devolver un única instancia, cada vez que se intenta instancia o obtener una instancia
VENTAJAS E INCONVENIENTES
Sólo tenemos una instancia por clase, eso reduce el número de clases gestionadas y por consiguiente un acceso controlado a la instancia
Hay que tener en cuenta, que la implementación es la más sencilla de todas. Si queremos que tenga en cuenta multithreading, sea concurrente y otras eventualidades, deberemos hacer modificaciones, para que sean soportadas
IMPLEMENTACIÓN