# Objekte durchnummerieren



## Stalafin (17. Dez 2006)

Ich habe zwei Klassen: Kunde und Auftrag.
Beide Klassen haben verschiedene Attribute, unter anderem Kundennummer und Auftragsnummer.

Es soll also jedem neu erzeugten Kunden automatisch eine Kundennummer zugewiesen werden, ebenso jedem Auftrag eine Auftragsnummer.

Wie würdet ihr das Problem mit der automatischen Vergabe der Kundennummern lösen? Wo müsste die Methode rein, die diese automatische Vergabe regelt?
Auf die schnelle fiel mir folgender Ansatz ein: Ich erstelle in der Main-Methode einen Kunden-Array und einen Auftrags-Array (oder vielleicht eine List) und dann füge ich den Arrays die Objekte hinzu. Nun wird also der Array immer größer und, je nach dem, welche Stelle im Array das Objekt hat, das Objekt bekommt eine Nummer zugewiesen.

Ist die Lösung in Ordnung? Oder fällt euch etwas besseres ein?

(es sei noch angemerkt, dass jeder Auftrag der Auftrags-Liste des jeweiligen Kunden zugefügt wird!)


----------



## mis (17. Dez 2006)

Hallo,

naja, ich nehmen mal an dass du diese Kunden irgendwo abspeichern wirst. Da nimmst du dann am besten ein File mit der höchsten vergebenen "Kunden ID" und liest die jeweils aus, vergiebst sie und erhöhst diese um 1, dann zurück ins File schreiben. 

Du könntest natürlich auch mit der "Random" Klasse ein wenig rumspielen und dann schauen ob es schon irgendwie vorhanden ist - ist aber umständlicher und wirklich Sinn macht das auch nicht.


----------



## merxleben (17. Dez 2006)

Hi,

ich empfehle an der Stelle immer ein Numerierungsobjekt, das dann eindeutige IDs generiert. Und um sicherzustellen, dass es nur eine einzige Instanz von einem solchen Numerierungsobjekt gibt, gehört dazu noch das Stichwort Singleton.

Das alles als kurze Anregung.

Martin


----------



## Gelöschtes Mitglied 5909 (17. Dez 2006)

```
public class Id {

static int id = 0;

public static int getId() {
 return id++;
}
```

zugriff Id.getId()


----------

