Laden...

verschiedene Datenformate richtig verarbeiten.

Erstellt von Zappy vor 5 Jahren Letzter Beitrag vor 5 Jahren 1.166 Views
Z
Zappy Themenstarter:in
3 Beiträge seit 2018
vor 5 Jahren
verschiedene Datenformate richtig verarbeiten.

Hi@all,
ich komme am besten gleich zum Punkt.
Ich bin Grad dabei ein Programm zu schreiben, dem ich Daten als String übergeben kann. Das Programm soll dann aus diesen Daten ein Objekt erstellen, welches diese Daten enthält. Die Daten sollen sowohl im XML als auch im JSON-format vorliegen können (evtl. Kommen später noch andere Formate hinzu).

Nun soll mein Programm folgendes tun:

  • den String entgegennehmen
  • ermitteln um welches Format es sich handelt
  • anhand des Strings ein Objekt erstellen, dass diese Daten enthält

Sowohl das Ermitteln des Daten-Formates als auch das erstellen des Objektes anhand der Daten sollten kein Problem darstellen. Mir geht es hauptsächlich um die Frage, wie ich das Programm am besten aufbaue, um es erweiterbar zu halten, so dass ich später einfach das umwandeln neuer Dateiformate hinzufügen kann oder dass das Programm anstelle von Strings auch Dateien entgegennehmen kann, etc.

Gibt es da ein Design-pattern oder eine Kombination aus verschiedenen Patterns die auf diese Problemstellung zugeschnitten sind?

Wie würdet ihr da am besten vorgehen?

16.834 Beiträge seit 2008
vor 5 Jahren

Versteife Dich nicht auf die Wiederverwendung und Erweiterbarkeit.
Du wirst sowieso nie alles komplett abdecken können; Du wirst nie wissen, was kommen wird.

Die wichtigsten Dinge wie Dependency Injection, Inversion of Control bzw Gang of four ... decken ohnehin wichtige Dinge von Haus aus ab.
Aber fokussiere Dich auf das Kernthema; nicht auf Dinge, die evtl. nie kommen werden.

Es wird immer zig Pattern für eine Lösung geben.

4.939 Beiträge seit 2008
vor 5 Jahren

@Abt: Ich sehe das etwas anders, die Grundstruktur des Programmes sollte schon so geschrieben sein, daß man nicht für jedes neue Format an X Stellen im Code Änderungen machen muß.

Da bieten sich das Abstrakte Fabrik- und Strategie-Pattern an.

16.834 Beiträge seit 2008
vor 5 Jahren

Dem hab ich auch nicht widersprochen.
Aber es gibt kein Design und eine Architektur, die für alle Future Features eine Modularisierung anbietet.

Z
Zappy Themenstarter:in
3 Beiträge seit 2018
vor 5 Jahren

OK, schonmal danke für eure Antworten.
@Th69 wenn ich das soweit alles richtig verstanden habe, dann würde die Factory die Daten entgegen nehmen (als String, als Datei, als Stream oder was auch immer), ermitteln um welches Format (XML, JSON, etc.) es sich handelt und dann anhand dessen das jeweilige Objekt aus dem Strategy-pattern erstellen und diesem dann die Daten übergeben. Dieses erstellte Objekt, würde dann anhand der Daten - welche ihm von der Factory übergeben wurden - mein gewünschtes Objekt erstellen, welches diese Daten enthält. Wäre das in diesem Fall die richtige Vorgehensweise?

Wenn nicht, wäre ich über eine Richtigstellung sehr dankbar.

Wenn ja, dann hätte ich noch die Frage, ob es einen bestimmten Grund dafür gibt, warum man die Abstract Factory nutzen sollte oder ob auch eine Factory Method möglich wäre.

4.939 Beiträge seit 2008
vor 5 Jahren

Ja, so meinte ich das (und wie unter Fabrikmethode bei "Verwandte Entwurfsmuster" steht, wird die "Abstrakte Fabrik" meist als Fabrikmethode(n) realisiert - es ist also nur eine Variation davon, d.h. du kannst es dir also je nach Anwendungsfall [ob du nur eine oder mehrere verschiedene zu erzeugende Objekte hast] aussuchen).