Laden...

Designänderung - Best practice - Bestehendes Design verbessern

Erstellt von Midnight Run vor 14 Jahren Letzter Beitrag vor 14 Jahren 461 Views
Midnight Run Themenstarter:in
80 Beiträge seit 2008
vor 14 Jahren
Designänderung - Best practice - Bestehendes Design verbessern

Hallo,
ich denke mal das dies eine andere Art von Frage ist wie sonst und auch etwas länger wird aber ich hoffe das es mich weiter bringt.

Ich habe vor kurzem ein kleinen App geschrieben. Die Hauptaufgabe der Anwendung ist es eine XML Datei zubearbeiten.

Die XML Datei kann wiefolgt aussehen :


<root>
 <farbe>2</farbe>
 <rahmen>
  <rahmen-dicke>4</rahmen-dicke>
  <rahmen-stil>5</rahmen-stil>
 </rahmen>
 <nummer>16354</nummer>
</root>

Nun soll meine Applikation diese XML verändern. Also keine allzu schwere Aufgabe. Da ist nur das Problem das dies Benutzerfreundlich geschehen soll, naja ein Problem ist es nicht, sondern meine Pflich 😁

Es gibt also in der XML Elemente die einen festen Stamm von validen Daten haben. Z.B. Element "farbe" darf Werte von 1 bis 10 annehmen wobei 1 = weiss bedeutet 2 = rot etc.

Es gibt aber auch einige wo dies nicht der Fall ist z.B. "nummer" darf Nummerische Werte annehmen.

Intern wird nur mit den Nummern gearbeitet aber um dies Benutzerfreundliche zu gestalten sollte mit den Display Namen z.B. 2 ist gleich "Rot" in der Oberfläche gearbeitet werden.

Nun habe ich mir eine Klassenhierachie zusammen gebaut und ungefähr so aufgebaut ist :

(Siehe Bild)

Es gibt eine Klasse Namens Element, diese Repräsentiert ein Element in der XML. In dieser Klasse ist auch ein Dictionary mit dem KeyValuePair<int, string>. Dort registriere ich alle Werte die für dieses Element erlaubt sind :

Beispiel "farbe" :

1 = weiss
2 = rot
..
..
..

Für Elemente die keinen Auswahl an validen Werten angeben habe ich eine zweite Klasse gemacht die ElementRange heisst.

Nun gibt es noch eine Documentklasse die eine Liste auf alle registrierten Elemente Objekte enthält.

Es wird nun von meinem Programm aus eine XML geladen, dann wird direkt geguckt welche Elemente, die registriert worden sind auch in der XML enthalten sind und diese werden dann mit ihren Display Namen zurück gegeben an die UI und es wird dann dynamisch eine Eingabe für neue Werte generiert.

Sprich labels werden aufgebaut und dann ComboBoxen mit den gültigen Werten in ihren Displaynamen oder einfache Textboxen.

Schon beim programmieren ist mir aufgefallen das ich alles ziemlich komplex aufgebaut habe.

Nunja nun wurde mein Programm gereviewt und mir wurde gesagt das ich es nicht sehr schön gelöst habe da ich die Daten die ich bekomme direkt verarbeite.

Ich sollte mich zuanfang gar nicht darum kümmern die Daten schön aufzubereiten sondern erstmal die Daten an sich zu sammeln.

Mir wurde vorgeschlagen mir die XMLSerialisierung anzusehen für dieses Problem, da die XML File immer den selben aufbau, sprich statisch ist.

Meine Frage ist nun was ihr persönlich an meinem Aufbau falsch bzw. nicht gut findet. Ich würde gern daraus zuviel wie möglich an Erfahrung rausziehen 😁

Vielleicht bessere Lösungansätze ?

Wenn ich den XMLSerialierungs Weg gehe müsste ich ja auch eine Art Übersetzer Klasse wieder aufsetzten etc.

Naja ich hoffe auf rege Beteiligung .

Mfg