Programmiermethodik Übung 12 Best practices. Musterlösung Übung 10

Preview:

Citation preview

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

Recommended