Verwaltungsschnittstellen im Programm
-
Hi Allerseits, ich hoffe ihr könnt mir bei folgendem Problem helfen:
Ich weiß nicht, wie man sowas wie verwaltungs module (sowas wie devices) erstellt, bis jetzt hab ich das überall als klassen realiliert gesehen, die über create funktionen erstellt werden und folglich meist nur 1 mal existieren können.
Problem: Durch die Create Funktion kehrt mann doch eigentlich wieder zur Struktorierten Programmierung zurück, da man da auch immer alle Daten unständlich initialisieren muss!!! Ich meine: die Methodenaufrufe sind doch nur eine andere Forma von: foo(value,object_is_struct);Im Stoustrupp hab ich nu aber gelesen, dass statt Klassen, von denen sowieso nur ein objekt erstellt wird, auch namespaces nehmen kann.
Problem: Kein mir bekanntes UML-Tool kann mit so einem aufbau etwas anfangen und man kann die Objekte, die man ansonsten ja mti der Create funktion erstellt, nicht mahr austauschen, da es ja keine objekte mehr gibt...Jetzt bin ich recht verunsichert und weiß nicht wie ich das ganze richtig machen muss, kann mir jemand auf die Sprünge helfen oder einen Link zu einer entsprechenden Seite geben?
MfG GandalfDerGrüne
-
Das hört sich nach einem Singleton an.
Wenn ich mich richtig an Stroustrup erinnere, benutzt er das Beispiel mit dem namespace, um von der C Technik "singeleton artige Gebilde" mittels static Funktionen und Variablen in einem Modul auf Namespaces und Klassen überzuleiten.
Das ist keine ernstzunehmende Technik, funktioniert aber sicherlich.
Klassen, die nur einmal existieren sollen, werden Singleton genannt. Es gibt dazu interessant Lektüre im Internet oder einen sehr ausführlichen Abschnitt in "Modern C++ Design" von Alexandrescu.
-
niemand schrieb:
Das hört sich nach einem Singleton an.
Wenn ich mich richtig an Stroustrup erinnere, benutzt er das Beispiel mit dem namespace, um von der C Technik "singeleton artige Gebilde" mittels static Funktionen und Variablen in einem Modul auf Namespaces und Klassen überzuleiten.
Das ist keine ernstzunehmende Technik, funktioniert aber sicherlich.
Klassen, die nur einmal existieren sollen, werden Singleton genannt. Es gibt dazu interessant Lektüre im Internet oder einen sehr ausführlichen Abschnitt in "Modern C++ Design" von Alexandrescu.DANKE, ich glaube das ist der Begriff, der mir gefehlt hat um Informationen dazu zu finden!
-
Wow, der Meyer-Singelton ist ja wirklich praktisch!
Aber wird damit:static Singleton& GetInstanz() { // Die Instanz wird erst beim ersten Aufruf erzeugt. // Endet das Programm, wird Instanz vernichtet. static Singleton Instanz; return Instanz; }Nicht bei jedem Aufruf eine neue Instanz erstellt?
-
nein, lies doch nochmal in einem buch, tutorial etc static nach
-
miller_m schrieb:
nein, lies doch nochmal in einem buch, tutorial etc static nach
Autsch, da hab ich mich aber sehr schön verlesen, dachte das static bezieht sich auf eine Member-Variable der Klasse... - die wohlbemerkt gar nicht existiert.
- würde auch keinen Sinn ergeben bei einem Singelton ^^.Danke für deinen dezenten Hinweis.
-
Hier noch einen Link für alle die die selbe Frage ha(tt)/(b)en
-
Hier noch einen Link für alle die die selbe Frage ha(tt)/(b)en