Singleton

Från Rilpedia

Hoppa till: navigering, sök
Wikipedia_letter_w.pngTexten från svenska WikipediaWikipedialogo_12pt.gif
rpsv.header.diskuteraikon2.gif

Inom datavetenskap är begreppet Singleton ett designmönster som innebär att man begränsar antalet instanser av en klass till ett objekt.

Exempel på implementation

Singleton implementeras genom att man skapar en klass med en metod som skapar en instans om det inte redan finns en. Om det finns en instans av klassen, returnerar metoden en referens av det objektet. För att förhindra skapandet av flera instanser görs konstruktorn privat (private) eller skyddad (protected).

Idéen med en singletonklass är alltså att det i programmet bara kommer att finnas en och endast en instans av klassen och att den som använder klassen inte behöver veta när den skapas. Singletonklassen skapas första gången någon ber om en referens till klassen.

Java

public class Singleton {
  // Privat konstruktor som förhindrar att det skapas en publik automatiskt
  private Singleton() {}

  private static class SingletonHolder {
    private static Singleton instance = new Singleton();
  } 

  public static Singleton getInstance() {
    return SingletonHolder.instance;
  }
}


Personliga verktyg