chetigol0308
Grünschnabel
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:
Dieses Instanzen dieser Klasse werden irgendwo erstellt
Dabei werden die Objekte in die Liste Aufgenommen! Jetzt wird aus einem komplett anderen Objekt auf diese Liste zugegeriffen:
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:
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!
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:
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:
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:
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:
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!