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

Designmønstret, der hedder Singleton, garanterer at der kun kan laves én instans af en klasse

Singleton er et designmønster som har til formål at sikre, at der højst kan laves én instans af en bestemt klasse

  • Naiv løsning:

    • I stedet for at instantiere et objekt refereres til en global variabel, som refererer til én fælles instans af objektet

I den naive løsning taler vi om en global variabel, som indeholder den ene instans vi vi er interesseret i. Vi kan observere, at sådanne globale variable ikke findes i Java. Det nærmeste vi kommer er statiske (klasse) variable. Sådanne kan helt klart anvendes til formålet. Singleton er dog en anelse smartere end blot en statisk, globalt tilgængelig variabel, som refererer til 'det enestående objekt'

  • Idéer som gør klassen C til en Singleton:

    • Konstruktoren i C fjernes fra klientgrænsefladen

    • Instansen af C skabes og returneres gennem en klasse metode (static)

    • Instansen refereres fra en privat klassevariabel (static variabel) i C

Et klassediagram for Singleton designmønstret. Det er skitseret i boksen til højre hvordan instance metoden laver en memoriseret instans. (Bemærk at vi ikke følger præcis Java syntaks i dette eller de følgende diagrammer).