Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Ich will dem Prinzip des "Seperation of Concerns" nachkommen. Deshalb hab ich eine Collection in einer extra klasse erstellt und die Input Output in einer anderen.
wie kann ich in der Klasse Input Output die Collection aufrufen
angenommen meine Map heißt:
Code:
private Map<String, Datensatz> datenMap = new HashMap<String, Datensatz>();
wieso willst du eine feste Map irgendwo aufrufen?
imho wäre folgende möglichkeit irgendwie angenehmer zu handhaben:
Code:
public class RecipeInputOutputter{
...
public static Map<String,Recipe> readRecipes(String filepath){...}
public static void writeRecipes(Map<String,Recipe> recipes, String filepath){...}
}
dann hast du einfach eine Klasse, die nützliche hilfsfunktionen für eingabe-ausgabe zur verfügung stellt. Für diesen Vorgang brauchst du von der Klasse, die mit deinen Daten irgendwie weiterarbeitet, nichts zu wissen.
weil ich eine Methode hab, die mir Rezepte in Map schreiben soll. Die Methode soll dann die Rezepte da rein schreiben. Dann kann ich später die Liste nochmal aufrufen und weiter verarbeiten.
so hab ich mir das (rein Theoretich) am einfachsten vorgestellt. Kann man es nicht auch so umsetzen ?
Falls ich den Einwand richtig verstanden habe, soll die "read"-Methode die neu eingelesenen Werte in eine existierende Map packen. Aber das kann man ja mit
existingMap.addAll(readThatStuff());
machen...
naja, ich hab doch auch begründet, warum mir diese Variante nicht gefällt, und wieso ich das etwas anders empfehlen würde. Um rezepte einzulesen, braucht man von der Klasse, die Rezepte verwaltet nichts zu wissen. Das würde nur eine unnötige Referenz auf die Verarbeitende Klasse kosten, und unnötig zur anzahl der Abhängigkeiten und zur "Spaghettisierung" des Codes beitragen.
wie müsste man den programmieren um die Hash map aus einer anderen klasse schlichtweg aufzurufen? Dann könnte ich sie einfach aufrufen und in einer geeigneten Methode weiter verarbeiten.
einfach in der verarbeitenden klasse eine getter-methode für die HashMap zur verfügung stellen. Dann könnte jeder von draußen darauf rumfummeln wie er will. Ganz und gar nicht schön für die datenkapselung :roll: