Hallo,
ich programmiere zur Zeit ein kleines Programm und möchte es gerne "schön" programmieren, also OOP, Kapselung und Trennung von Programmlogik und GUI, damit mir das Ding nicht nach ein paar Wochen überm Kopf zusammenstürzt.
Zur Zeit beschäftigt mich diese Situation: Es gibt eine Klasse Programm mit einer Eigenschaft
von Objekten meiner Klasse Person. Der Benutzer soll nun die Möglichkeit haben eine oder mehrere auszuwählen und soll dann seine Auswahl zurück an das Programm schicken. Wie ist nun der schönste Weg, diesen Vorgang umzusetzen? Ich habe mir mal verschieden Lösungen überlegt und würde gerne von erfahrenen Programmieren wissen, was am meisten Sinn macht.
1. Die Liste wird einfach public gemacht und ich gehe mit for(Person p: personen) die Liste durch. Beim Durchlaufen dieser Schleife lasse ich einen counter mitzählen, der sich den Index merkt. Der Nutzer wählt einige Personen aus, deren Indizes werden der Liste zum Löschen übergeben. (Problem: keine Kapselung? Die Liste sollte von außen nicht sichtbar sein.)
2. Die Liste bleibt private und es gibt eine Methode getListe(), die eine Kopie der Liste zurückgibt. Der Rest wie bei 1. (Problem: hoher Aufwand? und auch unnötige Informationen werden übergeben. Der Nutzer braucht eigentlich nur die Namen der Personen)
Auch beim Löschen von Elementen aus der Liste frage ich mich, sollten überhaupt die Indizes der gewählten Personen übergeben werden? Oder sollte das Objekt selbst übergeben werden? (ArrayList.remove macht beides möglich.)
Gibt es vielleicht noch weitere, schönere Wege?
Gruß
Leif
ich programmiere zur Zeit ein kleines Programm und möchte es gerne "schön" programmieren, also OOP, Kapselung und Trennung von Programmlogik und GUI, damit mir das Ding nicht nach ein paar Wochen überm Kopf zusammenstürzt.
Zur Zeit beschäftigt mich diese Situation: Es gibt eine Klasse Programm mit einer Eigenschaft
Code:
private List<Person> personen = new ArrayList<Person>();
1. Die Liste wird einfach public gemacht und ich gehe mit for(Person p: personen) die Liste durch. Beim Durchlaufen dieser Schleife lasse ich einen counter mitzählen, der sich den Index merkt. Der Nutzer wählt einige Personen aus, deren Indizes werden der Liste zum Löschen übergeben. (Problem: keine Kapselung? Die Liste sollte von außen nicht sichtbar sein.)
2. Die Liste bleibt private und es gibt eine Methode getListe(), die eine Kopie der Liste zurückgibt. Der Rest wie bei 1. (Problem: hoher Aufwand? und auch unnötige Informationen werden übergeben. Der Nutzer braucht eigentlich nur die Namen der Personen)
Auch beim Löschen von Elementen aus der Liste frage ich mich, sollten überhaupt die Indizes der gewählten Personen übergeben werden? Oder sollte das Objekt selbst übergeben werden? (ArrayList.remove macht beides möglich.)
Gibt es vielleicht noch weitere, schönere Wege?
Gruß
Leif