Toon posts:

1 instantie van een object in meerdere classes beschikbaar

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb even een klein ontwerp probleem met mijn programma.
Ik heb een aantal classes zoals met een functie. Alle classes moeten gegevens in een xml-file kunnen schrijven. Het schrijven van de XML-file gebeurd in een XMLGenerator object. Bij de constructie van het object wordt de fileaangemaakt. De verschillende classes moeten de informatie via de XML-generator in het bestand zetten. Er mag maar 1 XML-file bestaan, er mag dus ook maar 1 instantie van het object zijn. De instantie moet in alle classes bekend zijn. Hoe kan ik dit netjes oplossen??

Het programma is geschreven in C++

  • KnoppenSpook
  • Registratie: Augustus 2000
  • Laatst online: 04-09-2023
aanmaken in 'hoofd'programma en netjes een pointer meegeven aan de classes die er gebruik van willen maken?

/me weet geen leuke quote voor in zijn signature


Verwijderd

Dan moet je je instantie van je XMLGenerator doorgeven aan alle andere instanties van classes de gebruik moeten maken van die XML-file

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 23-08 10:39

Janoz

Moderator Devschuur®

!litemod

Waarschijnlijk zul je hier moeten denken aan een soort factory systeem.
[micro factory beschrijving]
De constructor van het object is private terwijl er een static methode getXMLGenerator is. In die static methode kijk je of een static variable al is gevuld met een XMLGenerator, Zo ja, geef je die terug, zo nee, maak je een nieuwe, ken je toe aan de static var en geef die terug.
[/micro factory beschrijving]

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

gewoon een global object?

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:02


Da's ranzig en een gemakzuchtige oplossing.

Om ervoor te zorgen dat je slechts 1 instantie van die class mag hebben, kan je eens kijken naar het 'singleton design pattern':

http://gethelp.devx.com/techtips/cpp_pro/10min/10min0200.asp
http://www.devhood.com/tu...ails.aspx?tutorial_id=486

[ Voor 42% gewijzigd door whoami op 17-03-2003 16:48 ]

https://fgheysels.github.io/


  • KnoppenSpook
  • Registratie: Augustus 2000
  • Laatst online: 04-09-2023
offtopic:
[quote]Verwijderd schreef op 17 March 2003 @ 16:43:
[/quote]

tekst onder naam: [quote]PHP pwnz :P[/quote] moet dat niet
PHP ownz :P zijn?

/me weet geen leuke quote voor in zijn signature


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
whoami: Da's ranzig en een gemakzuchtige oplossing.
en een Singleton is plotseling mooi? >:)

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Topicstarter
Wat zijn de bezwaren tegen een globaalobject wat een singleton is?

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:02
mbravenboer schreef op 17 maart 2003 @ 16:47:
[...]

en een Singleton is plotseling mooi? >:)


Als je gebruik maakt van Singleton, hoeft jouw singleton object toch niet globaal te zijn? Je kunt dat singleton object nog altijd doorgeven aan de andere classes.

Onder 'globaal object' versta ik dit:

code:
1
2
3
4
5
6
MySingleton s;

int main()
{
  ..
}

https://fgheysels.github.io/


Verwijderd

Topicstarter
Hoe kun je hem dan eenvoudig doorgeven aan een andere class, als pointer via de constructor.

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

code:
1
2
3
4
5
6
7
class Foo{
    private static Foo s_foo = new Foo();

    public static Foo getInstance(){return s_foo;}

    private Foo(){}
}


//en je kan hem als volgt aanroepen. Foo.getInstance().doeIetsLeuks().

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
mbravenboer schreef op 17 maart 2003 @ 16:47:
en een Singleton is plotseling mooi? >:)
Niet per definitie mooi, maar wel een stuk veiliger dan een globale variabele. Je kunt namelijk bij een Singleton niet heen om de instantie, zoals dat bij een global var wel kan.

edit:
En anders kijk ik eens wie het post en welke smiley er bij staan |:(

[ Voor 12% gewijzigd door Glimi op 17-03-2003 20:11 ]

Pagina: 1