Universidad Distrital “Francisco José de Caldas” Facultad de ingeniería – Ingeniería de sistemas Ingeniería de Software II William Andrés Bejarano MEMORANDO I - SINGLETON CONTEXTO El patrón de DiseñoSINGLETON sen encuentra en el ámbito de Objetos, es decir el patrón es implementado en los Objetos creados, estos pueden cambiar en tiempo de ejecución y son muy dinámicos. Además el patrón SINGLETONes de propósito creacional, es decir que tienen que ver con el proceso de creación de objetos. PROBLEMAS A RESOLVER La existencia de varios clientes que precisan referencias a un mismo elemento y quese debe asegurar la existencia de una única instancia a ese elemento. SOLUCIÓN El patrón SINGLETON garantiza una única instancia de una clase, es decir restringe la creación de objetos pertenecientesa una clase o el valor de un tipo a un único objeto. El funcionamiento se describe a continuación: 1. Ocultar construcción de la clase para que los clientes no puedan crear instancias. 2. Declara enla clase una variable miembro privada que contenga la referencia a la instancia única que se quiere gestionar. 3. Proveer a la clase una función o propiedad que brinde acceso a la única instanciagestionada por la clase. Los clientes acceden a la instancia a través de esta función o propiedad. Se recomienda tener bastante precaución en programas con múltiples hilos de ejecución. En el caso de quedos hilos intenten acceder a la instancia al mismo tiempo y esta no existe todavía, sólo uno de ellos debe poder crear el objeto. Una de las soluciones clásica es usar la exclusión mutua en el métodode creación que implementa el patrón. 1 Entre los beneficios que proporciona el patrón Singleton: • Acceso controlado a la única instancia. • Espacio de nombres reducido: Evita contaminar el espaciode nombres con variables globales que almacenen instancias. • Permite el refinamiento de operaciones y la representación: • Permite un número variable de instancias • Mas flexible que las operaciones...
Leer documento completo
Regístrate para leer el documento completo.