Lecture overview -- Keyboard shortcut: 'u'  Previous page: Singleton (1) -- Keyboard shortcut: 'p'  Next page: Factory Method (1) -- Keyboard shortcut: 'n'  Lecture notes - all slides and notes together  slide -- Keyboard shortcut: 't'  Help page about these notes  Alphabetic index  Course home  Page 15 : 31
Forelæsningsnoter i Objekt-orienteret Programmering
Designmønstre
Singleton (2)

Vi fortsætter her behandlingen af designmønstret Singleton. Vi koncentrerer os om en Java implementation af singleton

Java's static tillader en ligefrem implementation af Singleton mønstret

/user/normark/courses/prog1/prog1-01/sources/java/noteEksempler/patterns/SingletonDemo.javaSkabelonen for en Singleton klasse i Java.

Skabelonen for en Singleton klasse i Java. Ifølge mønstret fra Design Patterns bogen bør konstruktoren i Singleton klassen være protected. Dermed kan den anvendes fra evt. subklasser. Men på grund af Java's specielle regler om protectede egenskaber i en klasse (hvor disse også er pakkesynlige) skal konstruktoren være privat for at sikre, at ingen klient får lejlighed til at instantiere en singleton klasse

/user/normark/courses/prog1/prog1-01/sources/java/noteEksempler/patterns/SingletonDemo.javaAnvendelse af en Singleton klasse fra en anden klasse i Java.

Anvendelse af en Singleton klasse fra en anden klasse i Java. Vi tester om s2 og s3 virkelig refererer til det samme objekt, den eneste instans af Singleton, som vi tillader at instantiere

  • Konsekvenser:

    • Kontrolleret tilgang til instansen

      • Den ene instans er indkapslet og beskyttet i klassen Singleton

      • Objektet tilgås gennem en metode (beregnet tilgang) i stedet for ved aflæsning af en variabel (data tilgang)

    • Reduceret navnerum

      • Vi undgår at at skulle dedikere en offentlig kendt global variabel til at referere til den ene instans

    • Tillader let generalisering til 'højst n instanser'