Javaaaaaaaaaaaaaa

Páginas: 16 (3964 palabras) Publicado: 10 de octubre de 2012
Tema 2: Patrones Creacionales
TABLA DE CONTENIDOS ⌦Introducción ⌦Singleton – Instancia única ⌦Factory Method – Método fábrica ⌦Abstract Factory – Fábrica abstracta ⌦Builder – Constructor ⌦Prototype – Prototipo

Área de Lenguajes y Sistemas Informáticos. Universidad de Burgos

1

Introducción
⌦Los patrones de diseño abstraen el proceso de instanciación. ⌦Ayudan a hacer un sistemaindependiente de cómo los objetos son creados, compuestos y representados. ⌦Introducen una gran dosis de flexibilidad en todos los aspectos que involucren creación de objetos. ⌦Características:
Encapsulan el conocimiento sobre las subclases concretas que el sistema utiliza. Ocultan como las instancias de las clases son creadas y puestas juntas.

Área de Lenguajes y Sistemas Informáticos. Universidad deBurgos

2

Singleton
⌦Sinopsis
Asegura que sólo se crea una única instancia de una clase. Todos los objetos que utilicen una instancia de la clase será la misma.

⌦Contexto
Algunas clases deberían tener solo una instancia. Estas clases están generalmente relacionadas con el manejo de un determinado recurso. El recurso puede ser externo, como el caso de un objeto que maneja la conexión auna Base de Datos. El recurso puede ser interno. Un objeto que mantenga un contador de errores y estadísticas para un compilador.

Área de Lenguajes y Sistemas Informáticos. Universidad de Burgos

3

Singleton
Ejemplo: Se quiere crear una clase que impida que más de un fichero audio sea puesto al mismo tiempo. Si una aplicación contiene dos porciones de código que ejecutanindependientemente ficheros de audio, es posible que ambos se escuchen a la vez. Una solución que evite esta situación, es diseñar una clase que implemente esta política de manejo del recurso, asegurando que solo hay una instancia de la clase para todos los clientes que la utilicen. SingletonAudio

⌦Fuerzas
Debe haber una única instancia de una clase. La instancia de la clase debe ser accesible para todos losclientes de la clase.
Área de Lenguajes y Sistemas Informáticos. Universidad de Burgos

4

Singleton
⌦Solución
Involucra una única clase. La clase Singleton tiene una variable estática que referencia a la única instancia de la clase. Para prevenir que los clientes creen más instancias de la clase se declara el constructor privado. La instancia de la clase se puede crear cuando la clase secarga. Para permitir el acceso a la instancia la clase proporciona un método estático, típicamente llamado getInstance

Área de Lenguajes y Sistemas Informáticos. Universidad de Burgos

5

Singleton
⌦Consecuencias
Sólo existe una instancia de la clase Singleton. Otras clases que utilizar la instancia de la clase Singleton lo deben hacer invocando el método getInstance(). Diseñarsubclases de una clase Singleton es difícil:
Una superclase debe proporcionar un constructor que no sea privado. getInstance() es un método estático, y en java no se permite que los métodos estáticos se hereden.

Área de Lenguajes y Sistemas Informáticos. Universidad de Burgos

6

Singleton
⌦Uso del API de Java La clase java.lang.Runtime es una clase Singleton del API de Java.
No tiene unconstructor público Para obtener una referencia a su instancia se debe invocar a su método estático getRunTime().

Área de Lenguajes y Sistemas Informáticos. Universidad de Burgos

7

Singleton
⌦Ejemplo de código
Clase para evitar que se escuchen dos fichero de audio a la vez.
public class AudioClipManager implements AudioClip{ private static AudioClipManager myInstance = newAudioClipManager(); private AudioClip prevClip; /** El constructor esta definido como privado para evitar que el compilador genere uno por defecto**/ private AudioClipManager() { } /**Retorna la referencia a la instancia de la clase*/ public static AudioClipManager getInstance() { return myInstance; }

Área de Lenguajes y Sistemas Informáticos. Universidad de Burgos

8

/** Métodos que implementan la...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS