¿Qué es un singleton?

1880 vistas

Un singleton es un objeto que sólo puede ser instanciado un única ver en el programa.

Para transformar una clase en dingleton tendremos que pasar los constructores a acceso privado y añadir al código una instancia y un acceso estático:



java
  1. public class Singleton {
  2.     private static Singleton instance = new Singleton();
  3.     public static Singleton getInstance() {
  4.         return instance;
  5.     }
  6.     private Singleton() {
  7.         //constructor
  8.     }
  9.     //resto de la clase
  10. }



Existe una variante:



java
  1. public class Singleton {
  2.     private static Singleton instance = null;
  3.     public static Singleton getInstance() {
  4.         if(instance == null)
  5.             instance = new Singleton();
  6.         return instance;
  7.     }
  8.     private Singleton() {
  9.         // constructor
  10.     }
  11.     // resto de la clase
  12. }



Para acceder al singleton, basta con llamar:



freebasic
  1. Singleton s = Singleton.getInstance();