Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung Nächste ÜberarbeitungBeide Seiten, nächste Überarbeitung | ||
faecher:informatik:oberstufe:modellierung:warum:start [26.10.2021 09:40] – [Wann ist ein Klassenentwurf "gut"?] Mareike Nutz | faecher:informatik:oberstufe:modellierung:warum:start [26.10.2021 10:46] – [Klar abgegrenzte Klassen-Zuständigkeiten] sbel | ||
---|---|---|---|
Zeile 29: | Zeile 29: | ||
==== Kapselung und Geheimnisprinzip ==== | ==== Kapselung und Geheimnisprinzip ==== | ||
- | Klassenvariablen niemals öffentlich (public) deklarieren. Zugriff auf Attribute von anderen nur über sondierende und verändernde Methoden (get- und set-Methoden) möglich. Änderungen am internen Aufbau der Klasse haben keine Auswirkungen auf andere Klassen, welche mit dieser assoziiert sind. | + | **Klassenvariablen niemals öffentlich** (public) deklarieren. Zugriff auf Attribute von anderen nur über **sondierende** und **verändernde** Methoden (get- und set-Methoden) möglich. Änderungen am internen Aufbau der Klasse haben keine Auswirkungen auf andere Klassen, welche mit dieser assoziiert sind. |
- | Die Verwaltung der Position der Münzen in unserem Beispiel ist in Verantwortung der Muenzen-Klasse. Sollte die Verwaltung intern später auf ein Array mit zwei Feldern für x- und y-Koordinate umgestellt werden, so müssten bei direktem Zugriff von außen alle zugreifenden Klassen mitverändert werden - wenn der Zugriff über Getter- und Setter-Methoden gekapselt ist, müssen die assoziierten Klassen nichts über den internen Aufbau der Muenzen-Klasse wissen. Man spricht vom **Geheimnisprinzip**. | + | Die Verwaltung der Position der Münzen in unserem Beispiel ist in Verantwortung der Muenzen-Klasse. Sollte die Verwaltung intern später auf ein Array mit zwei Feldern für x- und y-Koordinate umgestellt werden, so müssten bei direktem Zugriff von außen alle zugreifenden Klassen mitverändert werden - wenn der Zugriff über Getter- und Setter-Methoden gekapselt ist, müssen die assoziierten Klassen nichts über den internen Aufbau der '' |
- | Anhand von Zuständigkeiten modellieren heißt, dass eine Klasse einen logisch sinnvollen und klar abgegrenzten Aufgabenbereich besitzt. | + | |
+ | Anhand von Zuständigkeiten modellieren heißt, dass eine Klasse einen **logisch sinnvollen** und **klar abgegrenzten** Aufgabenbereich besitzt. | ||
==== Klar abgegrenzte Klassen-Zuständigkeiten ==== | ==== Klar abgegrenzte Klassen-Zuständigkeiten ==== | ||
- | Entlang Zuständigkeiten zu modellieren bedeutet, dass eine Klasse einen logisch sinnvollen und klar abgegrenzten Aufgabenbereich besitzt. Im Münz-Schnipssspiel | + | **Entlang Zuständigkeiten** zu **modellieren** bedeutet, dass eine **Klasse** einen logisch sinnvollen und klar abgegrenzten Aufgabenbereich besitzt. Im Münz-Schnipsspiel |
==== Semantische, | ==== Semantische, |