Post on 05-Apr-2015
ProgrammiermethodikÜbung 12
Best practices
Musterlösung Übung 10
Musterlösungen Übung 10
Musterlösung Übung 10
Musterlösung HA 10
1) Richtig sind a, c, d, e
b: discs einmal in die falsche Richtung
f: Disc kann nicht auf Post liegen2) 4) (Alternativen möglich)
3) Richtig ist nur a
b: Nodes können keine Nodes haben, kein name
c: Node erbt nicht von Item
d: Nodes können keine Nodes haben
Geschicktes Design vereinfacht Code
Klassendiagramm:
Aktivität:
Aber Design sollte auch ‚sinnvoll‘ sein
Macht, wenn man nicht aufpasst, den Code komplizierter
Anforderungen vereinen
In diesem Fall hilft Vererbung:
Eine Scheibe liegt nun auf einem Teil, das eine weitere Scheibe oder ein Stab sein kann
Code wieder einfacher
Modellierungsaternativen
• „Wenn keine Scheibe über der aktuellen ist“
Modellierungsaternativen
• „Wenn keine Scheibe über der aktuellen ist“
Wenn nicht mind. eine Scheibe über der aktuellen ist
Modellierungsaternativen
• „Wenn keine Scheibe über der aktuellen ist“
Modellierungsaternativen
• „Wenn keine Scheibe über der aktuellen ist“
if ( aktuelleScheibe.getAbove() == null )
{
// weiter
}
// ende
if ( aktuelleScheibe.sizeOfAbove() == 0 )
{
// weiter
}
// ende
Praxisteil
• Installiere Fujaba 5.0.4 final• Es soll eine verkettete Liste programmiert werden, in der
Dateien und Ordner abgelegt werden können. Beispiel:
• Fujaba macht daraus dieses ungeschickte Klassendiagramm:
• Entwerfe ein geschickteres Klassendigramm mit Vererbung und implementiere die Methode Datei::fügeHintenAn(Datei erstesListenElement)
– die an das Ende der Liste läuft und dort die Datei ‚this‘ anfügt
Praxisteil
• Zusatzaufgabe:– Füge ein Attribut ‚size: Integer‘ hinzu– Implementiere einen Sortieralgorithmus deiner
Wahl, der nach Datei-/Ordergröße sortiert– Beeindrucke die Betreuer mit deiner Lösung