Was ist denn ein(e?) Singleton? Was ist die STL?
-
Hallo ihr Cracks!
Könnt ihr mir vielleicht eine kurze Erklärung bzw. ein paar Schlagwörter dazu geben, was denn ein(e) Singleton darstellt?Dann würde ich auch noch gerne wissen, wofür man den Asudruck STL benutzt?
Kurze und knappe Erklärungen reichen mir, danke an jeden Antworter
-
Singleton-Klasse= Klasse von der nur ein Objekt im Programm anglegt werden kann (durch entsprechendes Regulationssystem, zB Konstruktor und Zuweisungsoperator private, statische Funktion oder außerhalb der Klasse stehende Funktion gibt das einzige Objekt von der Klasse heraus)
STL=Standard Template Library. Das ist der Teil von der Standardlib mit den Containerklassen (vector<>, list<> etc.) und den Algorithmen die mit diesen Containern arbeiten (find() etc.)
-
-
Singleton-Klasse= Klasse von der nur ein Objekt im Programm anglegt werden kann (durch entsprechendes Regulationssystem, zB Konstruktor und Zuweisungsoperator private, statische Funktion oder außerhalb der Klasse stehende Funktion gibt das einzige Objekt von der Klasse heraus)
Meiner Meinung nach a) zu streng und b) fehlt ein ganz wichtiger Punkt.
A) Singleton muss nicht unbedingt "nur eins" heißen. Es kann auch "nur sieben" oder "nur 42" sein. Entscheidend ist, dass die Zahl eingeschränkt ist und das die Singleton-Klasse für diese Einschränkung sorgt.Der entscheidene Punkt beim Singleton-Pattern ist, dass es für die eine Instanz (oder die sieben oder die 42) eine *globale* Zugriffsmöglichkeit gibt.
-
punkt B wollte ich eigentlich damit ausdrücken:
statische Funktion oder außerhalb der Klasse stehende Funktion gibt das einzige Objekt von der Klasse heraus
-
Ich bemühe mich um eine kurze Antwort, allerdings weis ich nicht, wie viele Vorkenntnisse existieren.
1. Singleton
Bei Singleton können Methoden eines Objektes "on-the-fly" geändert werden.
Wenn z.B. mehrere Objekte derselben Klasse die Methode "Berechne" haben,
so kann mit Hilfe von Singleton bei einem bereits erzeugten Objekt, die Methode "Berechne" nachträglich geändert werden.2. STL - Standard Template Library
Diese kann man in C++ verwenden um sich Programmieraufgaben leichter zu machen.
Hier gibt es Werkzeuge die man benutzen kann. Z.B. verkettete Listen, Stacks, Hashes.
Aber auch Algorithmen zum Suchen oder Sortieren.
-
DDuelec schrieb:
Ich bemühe mich um eine kurze Antwort, allerdings weis ich nicht, wie viele Vorkenntnisse existieren.
1. Singleton
Bei Singleton können Methoden eines Objektes "on-the-fly" geändert werden.
Wenn z.B. mehrere Objekte derselben Klasse die Methode "Berechne" haben,
so kann mit Hilfe von Singleton bei einem bereits erzeugten Objekt, die Methode "Berechne" nachträglich geändert werden.Dafür würde ich aber keinen Singleton nehmen !?
Erläutere mal näher was Du damit meinst.
-
Danke für eure Antworten!
Also ich glaube dann hab ich sogar schonmal unwissentlich eins gemacht!
Ich habe alle Methoden und Members einer Klasse als statisch deklariert, und dann nur ein Objekt erzeugt. Dann konnte ich von überall im Programm mit folgendem Code Methoden abrufen:MyClass::MyMethod(...);
Ist das prinzipiell dann ein Singleton?
-
Knuddlbaer schrieb:
Dafür würde ich aber keinen Singleton nehmen !?
Erläutere mal näher was Du damit meinst.Habe dabei erstmal nicht an C++ gedacht, ich
gehe darauf in diesem Thread nicht ein, das verwirrt glaube ich.
Der Beitrag war auch nur als Ergänzung gedacht.Das Singleton-Pattern ist ja eine Klasse, die nur einmal instanziiert wird,
und auf dessen Instanzt kann ich dann global zugreifen.
-
Interessieren würde es mich nun dennoch. Gibt ja auch mail
-
STL: http://www.cs.rpi.edu/projects/STL/htdocs/node1.html#stlwhat
Singleton: http://www.edm2.com/0512/singleton.html
-
DDuelec schrieb:
Das Singleton-Pattern ist ja eine Klasse, die nur einmal instanziiert wird,
und auf dessen Instanzt kann ich dann global zugreifen.nein!
lies Humes Post!
-
http://home.earthlink.net/~huston2/dp/singleton.html
http://home.earthlink.net/~huston2/dp/SingletonDemosCppDenkt dran, dass ihr Singletons nicht als globale Variablen missbrauchen sollt! (Bei CUJ gab es glaub ich neulich erste nen Artikel dazu)