Mehrere Klassen greifen auf eine Enumeration zu.

melmager

Erfahrenes Mitglied
Also ich habe eine Classe Daten die wie eine Enmeration arbeitet (in der Classe selber ist ein ArrayList)

Code:
class Daten {
 boolean hasNextData();
 Daten getNextData();
}

und nun müsste ich von zwei andren Classen drauf zugreifen.
Wie stelle ich sicher das sich die beiden Zugriffe sich nicht gegenseitig beeinflussen ? also das Zugriff A auf Position 8 ist und Zugriff B auf Position 15.

Ich müsste (denke ich mal) den Functionen mitteilen wer zugreift.

Code:
class A {
 quelle.hasNextData(this);

Code:
class Daten {
hasNextData(Obj obj) { }
}

dann würde ich intern über eine hashmap gehen um festzuhalten an welcher stelle der jeweilge Zugreifer unterwegs ist.

Ist das ein gangbarer Weg - oder gibts eine bessere Vorgehensweise ?
 
Zuletzt bearbeitet:

melmager

Erfahrenes Mitglied
Manchmal verrennt man sich

Ich frage mich grade ob es nicht einfacher ist in der entsprechenden Classe ein Zeiger zu installieren
und das ganze anders anzugehen:
Code:
interface DatenQuelle {
 Daten getDataAt(int pos);
 int getDataSize();
}

zusatzfrage was macht man gegen Scheuklappen wenn man sich in eine Idee verrannt hat :)

Code:
class A {
 private int pointer = 0;
//snipp
 daten = quelle.getDataAt(pointer);
}

oder andre Lösung

Code:
class Daten
private ArrayList arrayList = new ArrayList();
//snipp
Enumeration getEnumData() {
return Collections.enumeration(arrayList);
}

jetzt nur mal überlegen welcher Weg gangbarer ist
 
Zuletzt bearbeitet: