Modelo Iterativo Incremental

Patrones de Diseño. Patrón Singleton

Pues comenzamos con el primer patrón de la serie Patrones de Diseño. Como dije en la introducción, comenzamos con el patrón Singleton.

Propósito

Asegurar que una clase sólo tiene una instancia y proporcionar un punto global de acceso a ella.

Motivación

Es importante que algunas clases tan solo tengan una sola instancia. Por ejemplo, puede haber varias impresoras en un sistema pero solo debería existir una cola de impresión. Pero. ¿Cómo podemos asegurar que una clase tiene una sola instancia y que esa instancia es fácilmente accesible? La mejor solución es hacer que la clase sea responsable de su instancia. La clase debe asegurarse de que no se puedan crear más instancias y debe proporcionar una forma de acceder a su instancia.

Aplicabilidad

El patrón Singleton se usa cuando:

  • Debe haber exactamente una única instancia de una clase y los clientes deben poder acceder desde un punto de acceso fiable.
  • La instancia debería ser extensible mediante subclases y los clientes deberían poder usar una instancia sin modificar su código.

Estructura

Patrones de Diseño, Estructura Patrón Singleton

La clase Singleton define la operación instance() que permite a los clientes acceder a la única instancia de la clase. Los clientes sólo pueden acceder a esa instancia a través de esa operación.

Para que se entienda mejor usaré un ejemplo que podría ser real:

Patrones de Diseño, Estructura del Patrón Singleton

Ejemplo de la estructura e implementación del patrón Singleton

Consecuencias

Los beneficios de este patrón son los siguientes:

  • Acceso controlado a la instancia: Debido a que la clase Singleton encapsula su instancia, puede tener un control de cuándo y cómo los clientes acceden a ella.
  • Reduce el número de variables: El patrón Singleton evita tener variables globales que sólo guardan instancias de clases.
  • Permite cambiar el número de instancias: Este patrón facilita que se añadan más instancias de la clase Singleton en caso de que ya no queramos solo una. Además, se puede controlar el número de instancias que se usan. Lo único que hay que cambiar en la operación instance()

Usos conocidos

En java existen varias clases singleton. Una de ellas es la clase Runtime que no tiene constructores públicos y se obtiene su única instancia llamando al método getRuntime().

Pues esto ha sido todo. Hemos comenzado con un patrón sencillo pero poco a poco iremos añadiendo nuevos patrones.

Dejar un comentario

Uso de cookies

Este sitio web utiliza cookies para que usted tenga una mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información sobre las cookies utilizadas.plugin cookies

ACEPTAR
Aviso de cookies