tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
252
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    chetigol0308 chetigol0308 ist offline Grünschnabel
    Registriert seit
    Feb 2009
    Beiträge
    3
    Hi!

    Ich möchte beim Erstellen der Objekte einer bestimmten Klasse, diese in einer Liste Registrieren. Diese Liste wird dann in einer anderen Klasse verwendet, wie sollte so etwas in Java am besten gelöst werden? Mein Ansatz ist derzeit folgender:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    public class Objekt1 {
       // Hier werden alle Instanzen diesesr Klasse festgehalten
       static private Map<Integer, Objekt1> Liste = new HashMap<Integer, Objekt1>();
       
       // statische funktion, welche auf die Liste zugreift
       public static getObject( int Id ){
           return( Liste.get(Id) );
       }
        
       Objekt1( int id )
       {
           Liste.put( id , this );
       }
        
    }

    Dieses Instanzen dieser Klasse werden irgendwo erstellt
    Code :
    1
    2
    3
    
    new Objekt1(1);
    new Objekt1(2);
    new Objekt1(3);

    Dabei werden die Objekte in die Liste Aufgenommen! Jetzt wird aus einem komplett anderen Objekt auf diese Liste zugegeriffen:
    Code :
    1
    2
    3
    4
    5
    6
    7
    
    public class ObjektXY {
        // .......
        
        void verwendeObjekt(){
            Objekt1.getObject( 1 );
        } 
    }

    Ist an dieser vorgehensweise etwas auszusetzen? Die Liste wird ja als eine Art globaler Variable verwendet! Ist es in Java auf diese Art ok?
    Oder sollte ich die Liste in ein eigenes Objekt ausgliedern und dieses dann dem „ObjektXY“ in einem Konstruktor übergeben, damit dieses Objekt auf die Liste zugreifen kann

    Also als Beispiel:
    Code :
    1
    
    o1 = new ObjektXY( Objekt1.Liste );

    Oder wie schon oben beschrieben, die Liste in ein eigenes Objekt ausgliedern, welches die „Objekt1“ – Instanzen aufnimmt, und dieses an ObjektXY übergeben

    Ich tendiere eher zur ersten Möglichkeit, aber so sicher bin ich mir da auch nicht!
     

  2. #2
    Avatar von Franz Degenhardt
    Franz Degenhardt Franz Degenhardt ist offline Mitglied Brokat
    Registriert seit
    Mar 2004
    Ort
    Köln
    Beiträge
    378
    Die Objekte, die du in die Map einsortierst sind vom selben Typ wie der Typ, der die Instanz der Map hält. Das ist nicht so gut, da sich dadurch quasi eine Rekursion in der Struktur ergibt. Nämlich eine Klasse, die eine Map von Objekten enthält, die wiederum jeweils eine Map von Objekten enthalten.
    Besser wäre, einen eigenen Typ von Objekten für das Einsortieren in die Map zu verwenden.
     
    Denken gefärdet die Gewohnheit

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 13.03.10, 09:43
  2. Antworten: 5
    Letzter Beitrag: 24.05.08, 11:23
  3. Mit verketteten Listen Instanzen verwalten
    Von Theranium im Forum C/C++
    Antworten: 2
    Letzter Beitrag: 10.11.07, 12:21
  4. XP runter 98 drauf
    Von TobGod im Forum Microsoft Windows
    Antworten: 13
    Letzter Beitrag: 08.10.04, 18:35
  5. DLL Listen- Absturz, Listen übergeben
    Von haemmer im Forum C/C++
    Antworten: 0
    Letzter Beitrag: 05.02.04, 21:00