faecher:informatik:oberstufe:modellierung:warum:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
Nächste ÜberarbeitungBeide Seiten, nächste Überarbeitung
faecher:informatik:oberstufe:modellierung:warum:start [25.10.2021 15:34] – [Warum verteilt man die Funktionalität und den Code auf mehrere Klassen?] sbelfaecher:informatik:oberstufe:modellierung:warum:start [25.10.2021 15:39] – [Wann ist ein Klassenentwurf "gut"?] sbel
Zeile 6: Zeile 6:
   - Wenn die OO-Modellierung eine Problems nicht eindeutig ist - **woran erkennt man dann, ob man es "gut" gemacht hat?**   - Wenn die OO-Modellierung eine Problems nicht eindeutig ist - **woran erkennt man dann, ob man es "gut" gemacht hat?**
  
-===== Warum verteilt man die Funktionalität und den Code auf mehrere Klassen? =====+==== Warum verteilt man die Funktionalität und den Code auf mehrere Klassen? ====
  
 Wenn man ein Problem sinnvoll modularisiert und modelliert, hat das viele Vorteile:  Wenn man ein Problem sinnvoll modularisiert und modelliert, hat das viele Vorteile: 
Zeile 14: Zeile 14:
   * **Neue Objekte** können durch **neue Klassen** ein ein Modell eingefügt werden - du willst Hindernisse auf dem Spielfeld? Kein Problem mit der zusätzlichen "hindernis"-Klasse.   * **Neue Objekte** können durch **neue Klassen** ein ein Modell eingefügt werden - du willst Hindernisse auf dem Spielfeld? Kein Problem mit der zusätzlichen "hindernis"-Klasse.
  
 +==== Wann ist ein Klassenentwurf "gut"? ====
 +
 +Ein Klassenentwurf ist also "gut", wenn er die oben genannten Vorteile maximal unterstützt - hierführ kann man zwei Eigenschaften des Entwurfs betrachten: 
 +
 +  * **Kohäsion**: Die Kohäsion einer Klasse definiert ihren logischen Zusammenhalt als Einheit. Erennen kann man das daran, wie deutlich Sie sich von anderen Klassen des Modells abgrenzt, aber auch daran, dass ihre Methoden für klar umrissene Aufgaben zuständig sind. Beispiel: Wenn man bei der Implementation einer Liste eine Methode''isEmpty(): boolean'' definiert, die nur schaut, ob der Startknoten null ist, erscheint das im ersten Augenblick übertrieben, erhöht jedoch die Kohäsion der Klasse. Antatt an vielen Stellen eine interpretationsbedürftige Abfrage ''start==null'' im Code zu haben, hat man eine semantisch klare Methode ''isEmpty()''.
  
  
  • faecher/informatik/oberstufe/modellierung/warum/start.txt
  • Zuletzt geändert: 26.10.2021 10:56
  • von sbel