Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
njubee Mini JLI'ler
Anmeldedatum: 17.06.2006 Beiträge: 16
Medaillen: Keine
|
Verfasst am: 20.08.2007, 18:55 Titel: Frage zu "new" und Klassen |
|
|
Es ist bitte folgendes:
Ich habe eine Basisklasse (GUIElement) von der ich weitere Klassen ableite (GUIButton, GUIStatic,...). Nun möchte ich die GUI-Strutur aus einer Datei einlesen, und die jeweiligen Objekte dynamisch mit "new" erzeugen. Jetzt müsste ich ja für jedes Objekt die richtige abgeleitete Klasse nehmen z.b.
/*vereinfacht*/
switch (typ)
case "Button"
new GUIButton
case "static"
new GUIStatic usw.
Gibt es für mein Problem eine bessere Lösung?
PS:Ich bin ein ziemlicher Anfänger, und deshalb für jeden Tip dankbar. |
|
Nach oben |
|
|
David Super JLI'ler
Alter: 39 Anmeldedatum: 13.10.2005 Beiträge: 315
Medaillen: Keine
|
Verfasst am: 20.08.2007, 18:58 Titel: |
|
|
Factorypattern? |
|
Nach oben |
|
|
njubee Mini JLI'ler
Anmeldedatum: 17.06.2006 Beiträge: 16
Medaillen: Keine
|
Verfasst am: 20.08.2007, 19:16 Titel: |
|
|
Habe ich noch nie was davon gehört. Nach 10 min. googeln habe ich folgendes gefunden
Zitat:
"Um dies zu realisieren, erstellt man eine Methode, an einem zentralen Punkt, beispielsweise einer Factory Pattern Klasse, welche bei der Übergabe einer bestimmten ID ein Objekt einer bestimmten Klasse zurück gibt"
Volltreffer!
Vielen Dank!!! |
|
Nach oben |
|
|
Otscho Super JLI'ler
Alter: 36 Anmeldedatum: 31.08.2006 Beiträge: 338 Wohnort: Gummibären-Gasse Medaillen: Keine
|
Verfasst am: 21.08.2007, 12:06 Titel: |
|
|
Genau so mach ichs auch.
Funtzt recht akzeptabel.
Wenn dir noch etwas unklar ist, wie man das realisieren könnte, kannst ja mal in die Direct3D-Samples schauen |
|
Nach oben |
|
|
David Super JLI'ler
Alter: 39 Anmeldedatum: 13.10.2005 Beiträge: 315
Medaillen: Keine
|
Verfasst am: 21.08.2007, 13:00 Titel: |
|
|
Otscho hat Folgendes geschrieben: | Funtzt recht akzeptabel. |
Dann machst du was falsch. Das Factory Pattern is genau für sowas da! Das sollte ganz hervorragend funktionieren! |
|
Nach oben |
|
|
DirectXer Dark JLI'ler
Anmeldedatum: 05.02.2005 Beiträge: 1201 Wohnort: Köln Medaillen: Keine
|
Verfasst am: 21.08.2007, 13:53 Titel: |
|
|
David hat Folgendes geschrieben: | Otscho hat Folgendes geschrieben: | Funtzt recht akzeptabel. |
Dann machst du was falsch. Das Factory Pattern is genau für sowas da! Das sollte ganz hervorragend funktionieren! |
ich wette dass sich das auf den Unterschied bezieht, das FP entweder mit new / delete explizit zu implementieren, oder std::auto_ptr (oder noch besser std::tr1::shared_ptr) zu benutzen. Bei ersterem müsste man sich nämlich noch manuell um das deleten kümmern
Gruß DXer |
|
Nach oben |
|
|
Hazel JLI MVP
Alter: 39 Anmeldedatum: 19.07.2002 Beiträge: 1761
Medaillen: Keine
|
Verfasst am: 21.08.2007, 15:22 Titel: Re: Frage zu "new" und Klassen |
|
|
njubee hat Folgendes geschrieben: | Es ist bitte folgendes:
Ich habe eine Basisklasse (GUIElement) von der ich weitere Klassen ableite (GUIButton, GUIStatic,...). Nun möchte ich die GUI-Strutur aus einer Datei einlesen, und die jeweiligen Objekte dynamisch mit "new" erzeugen. Jetzt müsste ich ja für jedes Objekt die richtige abgeleitete Klasse nehmen z.b.
/*vereinfacht*/
switch (typ)
case "Button"
new GUIButton
case "static"
new GUIStatic usw.
Gibt es für mein Problem eine bessere Lösung?
PS:Ich bin ein ziemlicher Anfänger, und deshalb für jeden Tip dankbar. |
Das ist schon das Factory Pattern, wenn du das noch abkapselst. Wenn es mit Objekttypen überhand nimmt gibt es noch das Abstract Factory Pattern.
http://en.wikipedia.org/wiki/Factory_method_pattern
http://en.wikipedia.org/wiki/Abstract_factory_pattern _________________ *click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
|
|
Nach oben |
|
|
Otscho Super JLI'ler
Alter: 36 Anmeldedatum: 31.08.2006 Beiträge: 338 Wohnort: Gummibären-Gasse Medaillen: Keine
|
Verfasst am: 21.08.2007, 17:44 Titel: |
|
|
David hat Folgendes geschrieben: | Otscho hat Folgendes geschrieben: | Funtzt recht akzeptabel. |
Dann machst du was falsch. Das Factory Pattern is genau für sowas da! Das sollte ganz hervorragend funktionieren! |
Sorry
Ich meinte "Funtzt recht akzeptabel" im Sinne von: Hey toll, es funktioniert exorbitant hervorragend, anstandslos. Was besseres ist mir in meinem bisherigen Leben noch nie untergekommen.
So, bis auf den letzten Satz sollte es stimmen. |
|
Nach oben |
|
|
|