Writing D:/inetpub/webs/vincenzodevivocom/wiki/data/cache/a/a0d69fe63f99a74dc4e9707dcce0d9f5.i failed
Unable to save cache file. Hint: disk full; file permissions; safe_mode setting.
Writing D:/inetpub/webs/vincenzodevivocom/wiki/data/cache/a/a0d69fe63f99a74dc4e9707dcce0d9f5.i failed
Unable to save cache file. Hint: disk full; file permissions; safe_mode setting.
Writing D:/inetpub/webs/vincenzodevivocom/wiki/data/cache/a/a0d69fe63f99a74dc4e9707dcce0d9f5.xhtml failed

Singleton

Singleton con inizializzazione lazy e thread-safe

public class Singleton { 
 
  /**
   * Costruttore privato, in quanto la creazione dell'istanza deve essere controllata.
   */
  private Singleton() {}
 
  /**
   * La classe Contenitore viene caricata/inizializzata alla prima esecuzione di getInstance()
   * ovvero al primo accesso a Contenitore.ISTANZA,
   * ed in modo thread-safe.
   * Anche l'inizializzazione dell'attributo statico, pertanto, viene serializzata.
   */
  private static class Contenitore { 
    private final static Singleton ISTANZA = new Singleton();
  }
 
  /**
   * Punto di accesso al Singleton. Ne assicura la creazione thread-safe
   * solo all'atto della prima chiamata.
   * @return il Singleton corrispondente
   */
  public static Singleton getInstance() {
    return Contenitore.ISTANZA;
  }
}

Singleton mediante l'uso di Enum

Singleton using enum

public enum SimpleSingleton {
    INSTANCE;
    public void doSomething() {
    }
}
 
//Call the method from Singleton:
SimpleSingleton.INSTANCE.doSomething();
 
code/java/design_pattern/singleton.txt · Last modified: 2012/05/30 20:42 by Vincenzo De Vivo
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki