Sowas wie TexturManager einfach als globale Instanz?



  • Jester schrieb:

    @Jover: Könntest Du kurz den Unterschied zwischen einem Singleton und einer globalen Variable erläutern?

    Ein Singleton ist ein Design Pattern. Eine globale Variable nicht. :p

    Ein Singleton erlaubt nur eine Instanz dieser Klasse. Eine gloabale Variable schränkt da nichts ein. Von der funktionalität ist eigentlich sonst kein Unterschied IMHO.

    Aber irgendwo habe ich schon mal gehört, dass globale Variablen eher vermieden werden sollen. 🙄



  • @Jover:
    Naja, das ist ja jetzt nicht so aussagekräftig.
    Globale Variablen sind ja auch nicht immer schlecht. Ich mein, manche Sachen sind nunmal global, da sollte man sie auch global machen.

    MfG Jester



  • Zumal dieser Texturenmanager ja nicht einmal im globalen Namensraum liegt.



  • davie schrieb:

    Zumal dieser Texturenmanager ja nicht einmal im globalen Namensraum liegt.

    Stimmt, also gar nicht richtig global.
    Aber ich verwende trotzdem lieber Singletons. 😉



  • Mis2com schrieb:

    Man kann theoretisch mehrere Instanzen meiner Klasse anlegen, man kann, wenn man möchte, mehrere texturmanager verwenden.

    Jover schrieb:

    Aber ich verwende trotzdem lieber Singletons

    Das paßt irgendwie nicht richtig zusammen, oder?
    Singletons sind schön und gut, aber manchmal braucht man sie auch garnicht.

    MfG Jester



  • Mis2com schrieb:

    Man kann theoretisch mehrere Instanzen meiner Klasse anlegen, man kann, wenn man möchte, mehrere texturmanager verwenden.

    theoretisch 😃
    Ich hab nene Singleton vorgeschlagen, da ich der Meinung war, dass es nur einen Texturmanager gibt.



  • Muss nicht sein 🙂
    Genauso wie man normalerweise nur ein Device hat.
    Es kann aber gut sein, dass ich einen 3D Editor baue und man dann 4 devices braucht. 🙂
    Oder eben das ganze mit ViewPorts.

    Genauso kann es sein, dass ich meine Texturen in 2 verschiedenene Texturmanagern lagern will, weshalb auch immer.
    Auf alle Fälle möchte ich die Chance nicht vertun. oO

    Mfg mAV



  • Dann kannst du aber noch immer den Singleton umwandeln, dass er mehrere Instanzen von sich anlegt. Aber das ist dann auch etwas unflexibel.



  • Wieso soll ich so ein Design-Pattern anlegen, wenn ich es völlig unsinnig finde?
    Genauso bei cout, es gibt einen ostream, der auf den Bildschirm gelenkt wird, man kann genausogut selber einen ostream nehmen und den auf den Bildschirm umlenken, hier ist es genau das Gleiche.
    Ich möchte einen Texturmanager anlegen, der von Natur aus, zu dem Hauptteil gehört.
    Gleichzeitig kann man aber auch mehrere Texturmangaer anlegen, was in manchen Fällen auch Sinn macht.

    Ich werde globale Variablen nicht vermeiden, nur weil es heißt, dass man sie vermeiden sollte, Stil ist immer noch Ansichtssache, also bitte Pro- oder Contraargumente mit Einbezug meiner Situation, das wäre hilfreich. 🙂

    Mfg MAV



  • In diesem Fall ist eine "quasi" globale Variable sicher das beste.
    Quasi, da sie ja nicht wirklich im globalen Namensraum ist.



  • Ja, es gäbe aber natürlich noch die Möglichkeit, diese eine Instanz jedesmal via Referenz an alle anderene Klassen mitzugeben, dann müsste sie in keinem NS sein. 😕


Anmelden zum Antworten