JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=a48465569aff9272afa399a25b8920d6Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Singletons
Gehe zu Seite Zurück  1, 2
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Tutorials
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 18.04.2009, 14:55    Titel: Antworten mit Zitat

was genau meinst du mit "ein Interface"? Vielleicht interessiert dich die Boost-Implementierung des Singleton Utilities hier, die ist eigtl ganz ordentlich geschrieben.

btw die möglichkeit besteht bestimmt, sag nur mal ein beispiel was du genau erreichen willst ;)

Cheers DXer
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
AFE-GmdG
JLI MVP
JLI MVP


Alter: 44
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 19.04.2009, 17:25    Titel: Antworten mit Zitat

Die Möglichkeit, eine Singleton-Basisklasse zu erstellen, ohne TemplateProgrammierung zu verwenden geht nicht, denn

Für den Fall, dass man eine Basisklasse CSingleton erzeugen würde müsste man ja noch die "GetInstance"-Funktion schreiben.
Diese müsste statisch sein und sie müsste vererbt werden, da die Basisklasse ja nicht wissen kann, von welcher möglicherweise abgeleiteten Klasse du eine Instanz haben möchtest. Das Problem ist nun, dass man statische Funktionen nicht erben kann, aus genau dem gleichem Grund: Der Compiler weiss nicht, welche möglicherweise abgeleitete Klasse soll ich denn verwenden, wenn du schreibst

CPP:
CSingleton* pSing;
pSing = CSingleton.GetInstance();


du würdest so maximal eine Instanz von CSingleton erzeugen, was aber nicht geht, wenn die Klasse abstrakt ist.

Ergo:

Ein Interface "Singleton" ist nicht möglich.
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Dragon
Super JLI'ler


Alter: 37
Anmeldedatum: 24.05.2004
Beiträge: 340
Wohnort: Sachsen
Medaillen: Keine

BeitragVerfasst am: 20.04.2009, 07:51    Titel: Antworten mit Zitat

Otscho hat Folgendes geschrieben:
Besteht auch die Möglichkeit ein Interface für Singletons zu erstellen ?

Ja
_________________
Nur wenn man ein Ziel sieht, kann man es auch treffen.
___________
Mein Leben, Freunde und die Spieleentwicklung
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Otscho
Super JLI'ler


Alter: 35
Anmeldedatum: 31.08.2006
Beiträge: 338
Wohnort: Gummibären-Gasse
Medaillen: Keine

BeitragVerfasst am: 20.04.2009, 10:03    Titel: Antworten mit Zitat

Ich möchte für bestimmte Klassen Metainfos so wie bei C# bereitstellen. Und diese in Singletons speichern. Singeltons deswegen, weil die Struktur einer Instanz immer gleich bleibt und ich nicht unnötig viele Instanzen von den Metainfos haben möchte. Und ein Interface brauch ich desswegen, damit ich das "Reflecting" automatisieren kann, bzw. es auch bei Plugins möglich ist.

Im Moment stelle ich eine Instanz der MetaKlasse noch in der ClassFactory der selben Klasse bereit. Ist aber auf Dauer net sehr praktisch.

Mal schauen was mir boost da noch bieten kann.

Danke schonmal für den Link DirectXer Wink
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Tutorials Alle Zeiten sind GMT
Gehe zu Seite Zurück  1, 2
Seite 2 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum