Mehrere versch. Klassen, die alle eine Instanz einer anderen brauchen



  • Hi Leute,

    weiss nicht so genau wo ich es hinschreiben soll, da es teileweise aber auch auf die Sprache ankommt hau ich es ma hier rein .

    Folgendes Problem :
    Ich habe eine Klasse, die eine Verbindung zu einer Datenbank herstellt.
    Außerdem habe ich mehrere,verschiedene Klassen, die eine solche Verbindung zur Datenbank benötigen.
    Was tuen ? Für jede Klasse eine Instanz der Datenbank-Verbindungs-Klasse erzeugen und somit mehrere Verbindungen zur Datenbank auf einmal erzeugen ? Find ich doof, könnte auch zu Fehlern führen, beim Speichern und Auslesen aus der Datenbank etc.



  • Erzeugt die Datenbankverbindung einmal und gib sie allen Klassen, die sie benötigt, mit? Oder verwende das Singleton Muster.



  • Hmpf, das ist mir gestern auch eingefallen ;P

    Nur das Problem : Wir müssen BlueJ verwenden, es gibt also keine main() oder anderweitigen Eintiegspunkt.
    Ich weiss nicht so wirklich wie ich das dann machen soll ... All diese Klassen sind grafische Oberflächen also eventbasiert.
    Ich weiss halt nicht, wie ich in BlueJ sowas wie eine globale Variable ( eben diese Datenbank Klasse ) erzeugen soll, sodass dann alle auf diese Klasse zugreifen können ?



  • Obwohl ich eig. zum Beispiel der Login-Oberfläche eine übergeben könnte und die von da aus immer "weiterreichen" könnte.
    Nur bin ich mir das bei Java etwas unsicher : FooClass blub; void foo ( FooClass arg ) { dostuff } foo ( blub ) ;

    Wird hier jetzt eine Kopie übergeben und somit auch eine Kopie der Klasse in foo() erzeugt oder nicht ?
    Also verhält sich das ganze so wie : FooClass blub; void foo ( FooClass& arg ) { }
    foo( blub ); ?

    Noch eine Frage, die aber eher weniger mit dem Thema zu tun hat :
    Es ist bei solchen BlueJ-Programmen denn überhaupt möglich, die auf CD zu brennen sodass sie dann automatisch ausgeführt werden ?
    Ich glaube irgendwie fast nicht. Es gibt schliesslich keine .exe oder welches Format auch immer.



  • Problem_/ schrieb:

    Obwohl ich eig. zum Beispiel der Login-Oberfläche eine übergeben könnte und die von da aus immer "weiterreichen" könnte.
    Nur bin ich mir das bei Java etwas unsicher : FooClass blub; void foo ( FooClass arg ) { dostuff } foo ( blub ) ;

    Wird hier jetzt eine Kopie übergeben und somit auch eine Kopie der Klasse in foo() erzeugt oder nicht ?
    Also verhält sich das ganze so wie : FooClass blub; void foo ( FooClass& arg ) { }
    foo( blub ); ?

    Bei Übergabe von Objekten wird in Java keine Kopie erzeugt, es wird nur die Adresse übergeben.



  • Das hatten wir hier gerade: http://www.c-plusplus.net/forum/289092

    MfG SideWinder



  • public abstract class Base
    {
        protected static final SubA suba = new SubA();
        protected static final SubB subb = new SubB();
        protected static final SubC subc = new SubC();
        // ...
    }
    
    class SubA extends Base { hier kannst du jetzt einfach suba subb subc verwenden... }
    class SubB extends Base { hier kannst du jetzt einfach suba subb subc verwenden... }
    class SubC extends Base { hier kannst du jetzt einfach suba subb subc verwenden... }
    

Anmelden zum Antworten