Un ejemplo podría ser un reproductor de vídeo. Normalmente los reproductores de vídeo como VLC o Windows Media sólo permiten ver un vídeo a la vez (no es un buen ejemplo ya que en este caso se hablaría de uno o varios procesos, no sólo de objetos).
Cuando definimos un atributo de tipo static, el valor de éste es compartido por todos los objetos que creamos a partir de esa clase.
Detalles de implementación:
- La clase Singleton controla el acceso a la instancia única.
- El patrón Singleton es una alternativa a las variables globales.
- Permite que la clase de la que se crea una única instancia tenga subclases y trabajar con ellas.
- Permite tener un número variable de instancias.
- Ofrece más flexibilidad que los métodos (estáticos) de clase.
public class Singleton {
private static Singleton instance = null;
private Singleton() {
// este método se define privado para evitar
// la creación de la clase con new
}
public static Singleton Instance () {
// lazy instantiation
if (instance==null)
instance = new Singleton();
return instance;
}
}
// código cliente
Singleton miSingleton = Singleton.Instance();
Singleton tuSingleton = Singleton.Instance();
-F.A.Q (preguntas que hay que hacerse cuando se implementa un singleton)
- ¿Qué visibilidad debe tener el constructor de la clase singleton?. Utilizando private evitamos que la clase singleton pueda ser instanciada.

No hay comentarios:
Publicar un comentario