Singleton
right|thumb|250px|Diagrama UML de una [[Clase (programación orientada a objetos)|clase que implementa el patrón singleton.]]En ingeniería de ''software'', ''singleton'' o instancia única es un patrón de diseño que restringe la creación a un único objeto la creación de objetos pertenecientes a una clase y asegura de que sólo haya esta instancia única.
Además de garantizar que una clase solo tenga una instancia, proporcionar un punto de acceso global a ella.
El patrón ''singleton'' se implementa creando en nuestra clase un método que crea una instancia del objeto solo si todavía no existe alguna. Para asegurar que la clase no puede ser instanciada nuevamente se regula el alcance del constructor (con modificadores de acceso como protegido o privado).
La instrumentación del patrón puede ser delicada en programas con múltiples hilos de ejecución. Si dos hilos de ejecución intentan crear la instancia al mismo tiempo y esta no existe todavía, solo uno de ellos debe lograr crear el objeto. La solución clásica para este problema es utilizar exclusión mutua en el método de creación de la clase que implementa el patrón.
Las situaciones más habituales de aplicación de este patrón son aquellas en las que dicha clase controla el acceso a un recurso físico único (como puede ser el ratón o un archivo abierto en modo exclusivo) o cuando cierto tipo de datos debe estar disponible para todos los demás objetos de la aplicación.
Los críticos consideran al singleton como un anti-patrón utilizando en escenarios donde no es beneficioso, introduce restricciones innecesarias donde una única instancia de una clase no es realmente requerida y agrega un estado global en la aplicación.
El patrón ''singleton'' provee una única instancia global gracias a que: * La propia clase es responsable de crear la única instancia. Por medio de su método constructor. * Permite el acceso global a dicha instancia mediante un método de clase. * Declara el constructor de clase como privado para que no sea instanciable directamente. * Al estar internamente autoreferenciada, en lenguajes como Java, el recolector de basura no actúa. proporcionado por Wikipedia
-
1por SingletonOtros Autores: “…Singleton…”
Acceso restringido, con credenciales UPSA
Recurso de actualización contínua -
2
-
3por Singleton, Frederick BernardOtros Autores: “…Singleton, Frederick Bernard…”
Publicado 1998
Biblioteca Universidad de Deusto (Otras Fuentes: Biblioteca Universidad de Navarra)Libro -
4por Singleton, E. SusanOtros Autores: “…Singleton, E. Susan…”
Publicado 2001
Biblioteca Universitat Ramon Llull (Otras Fuentes: Biblioteca Universidad de Deusto)Libro -
5
-
6
-
7
-
8por Singleton, SusanOtros Autores: “…Singleton, Susan…”
Publicado 2014
Conectar con la versión electrónica
Libro electrónico -
9por Singleton, JamesOtros Autores: “…Singleton, James…”
Publicado 2016
Conectar con la versión electrónica
Libro electrónico -
10por Singleton, AndyOtros Autores: “…Singleton, Andy…”
Publicado 2021
Conectar con la versión electrónica
Libro electrónico -
11por Singleton, KathyOtros Autores: “…Singleton, Kathy…”
Publicado 1987
Universidad Pontificia de Salamanca (Otras Fuentes: Biblioteca Conventual de El Escorial)Libro -
12
-
13
-
14por Singleton, SusanOtros Autores: “…Singleton, Susan…”
Publicado 2003
Conectar con la versión electrónica
Libro electrónico -
15por Singleton, SusanOtros Autores: “…Singleton, Susan…”
Publicado 2009
Conectar con la versión electrónica
Libro electrónico -
16por Singleton, SusanOtros Autores: “…Singleton, Susan…”
Publicado 2010
Conectar con la versión electrónica
Libro electrónico -
17por Singleton, SusanOtros Autores: “…Singleton, Susan…”
Publicado 2008
Conectar con la versión electrónica
Libro electrónico -
18por Singleton, SusanOtros Autores: “…Singleton, Susan…”
Publicado 2008
Conectar con la versión electrónica
Libro electrónico -
19por Singleton, BrianOtros Autores: “…Singleton, Brian…”
Publicado 2016
Conectar con la versión electrónica
Libro electrónico -
20por Singleton, KenOtros Autores: “…Singleton, Ken…”
Publicado 2003
Conectar con la versión electrónica
Libro electrónico