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
-
1
-
2
-
3
-
4
-
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
-
13
-
14
-
15
-
16
-
17
-
18por Joseph P Hannon, Sharon Wang-Price, Shiho Goto, Steven Singleton, Lindsey Dietrich, James Bothwell, Curtis Bush, Craig GarrisonEnlace del recurso
Publicado 2021
article -
19
-
20