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