Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
32 lines (28 sloc) 1.12 KB
class Singleton
// eine Singleton-Klasse beinhaltet immer eine Klassenvariable,
// die eine Instanz vom eigenen Typ hält.
field instance : Singleton
// damit die Klasse nicht mit dem Schlüsselwort 'new' neu instantiiert
// werden kann, muss der Konstruktor privat sein.
// somit kann eine neue Instanz nur aus der eigenen Klasse erzeugt
// werden
private constructur()
// ein Singleton muss immer eine statische Methode beinhalten, die die
// Instanz bereitstellt
static method GetInstance() : Singleton
// beim ersten Aufruf wird eine neue Instanz der Singleton-Klasse
// erzeugt und anschließend immer wiederverwertet
if this.instance is null
this.instance = new Singleton()
return this.instance;
// ein Singleton sollte auch Geschäftslogik beinhalten, die ab dieser
// Stelle definiert werden kann
method Operation(text) : any
program Client
// an dieser Stelle wird eine neue Instanz erzeugt
Singleton foo = Singleton.GetInstance()
foo.Operation("Hallo")
// ...
Singleton bar = Singleton.GetInstance()
foo.Operation("Welt")
// die Variable 'bar' beinhaltet dasselbe Objekt, wie auch die Variable 'foo'
You can’t perform that action at this time.