Häufige Fragen im Fachgespräch – Kapselung – Anwendungsentwickler-Podcast #6
In der sechsten Episode meines Anwendungsentwickler-Podcasts setze
ich meine Reihe über häufige Fragen im Fachgespräch fort. Dieses
Mal geht es um die Kapselung im Rahmen der Objektorientierung.
Beantwortung der Frage im Fachgespräch Objekte bilden Din...
19 Minuten
Podcast
Podcaster
Beschreibung
vor 10 Jahren
In der sechsten Episode meines Anwendungsentwickler-Podcasts
setze ich meine Reihe über häufige Fragen im Fachgespräch fort.
Dieses Mal geht es um die Kapselung im Rahmen der
Objektorientierung.
Beantwortung der Frage im Fachgespräch
Objekte bilden Dinge der realen Welt ab. Sie haben
Eigenschaften und Funktionen. Beispiel: Person mit Eigenschaft
Geburtstag und Funktion gruesse().
In der Objektorientierung nennt man die Eigenschaften
Attribute und die Funktionen Methoden.
Klassen sind Baupläne für Objekte. Sie definieren, welche
Attribute und Methoden jede Instanz der Klasse – das Objekt –
hat. Die konkreten Ausprägungen der Werte der Attribute – der
Zustand des Objekts – kann (muss aber nicht) bei jedem Objekt
unterschiedlich sein.
Objekte müssen zu jeder Zeit in einem gültigen Zustand sein,
d.h. die Attribute müssen gültige Werte haben.
Jedes Objekt ist dafür verantwortlich, seinen gültigen
Zustand beizubehalten. Daher muss es den Zugriff auf seine
Attribute einschränken können.
Außerdem sollte ein Objekt nicht nach außen hin preisgeben,
wie es funktioniert, sondern nur, was es macht.
Dieses Prinzip wird auch Geheimnisprinzip genannt.
Um den Zugriff auf Attribute und Methoden zu steuern, können
Sichtbarkeitsmodifizierer verwendet werden.
private = nur die Klasse selbst hat Zugriff, protected =
die Klasse selbst und von ihr abgeleitete Klassen haben
Zugriff, public = alle haben Zugriff.
Der Zugriff auf Attribute von außen sollte ausschließlich
über spezielle Methoden – Getter und Setter – möglich sein.
Setter erlauben die Prüfung der zu setzenden Werte und
sorgen damit dafür, dass das Objekt immer in einem gültigen
Zustand ist. Beispiel: Geburtsdatum wird vor dem Setzen auf
ein gültiges Datum ab 01.01.1900 geprüft.
Getter erlauben die Berechnung von Werten, anstatt sie in
Attributen abzulegen. Beispiel: Alter einer Person wird zur
Laufzeit anhand des Attributs Geburtsdatum ermittelt.
Tiefergehende Diskussion
In Java gibt es noch den Sichtbarkeitsmodifizierer
package-private (kein expliziter Modifizierer angegeben) = nur
die Klasse selbst und Klassen im gleichen Package haben Zugriff.
Objekte kapseln Attribute und die zugehörigen Methoden, d.h.
die Methoden sollten die Attribute verwenden.
Optimalerweise verwenden alle Methoden einer Klasse alle
Attribute der Klasse. Man spricht dann von einer hohen
Kohäsion.
Dieses Prinzip wird auch Single Responsibility Principle
genannt: „There should never be more than one reason for a class
to change.“
Im Vergleich zur prozeduralen Programmierung hat die
Kapselung von Attributen und den zugehörigen Methoden den Vorteil
der besseren Wiederverwendbarkeit. Eine Klasse kann als Ganzes
(wie eine Kapsel) verwendet werden.
Tipps für die Entwicklerpraxis
Daumenregel: Alle Attribute private machen.
Auch wenn es ggfs. nicht nötig ist, die
Sichtbarkeitsmodifizierer immer explizit angeben, damit der Code
leichter zu verstehen ist.
Getter und Setter erst einführen, wenn sie wirklich benötigt
werden (YAGNI).
Getter und Setter können von der meisten IDEs generiert
werden.
In C# werden anstatt Gettern und Settern Eigenschaften
(Properties) verwendet.
Literaturempfehlungen
*
(direkt beim Rheinwerk-Verlag bestellen*)
Das passende Kapitel im OpenBook: 9 Grundlagen der
Programmierung – Rheinwerk Computing :: IT-Handbuch für
Fachinformatiker
Links
Permalink zu dieser Podcast-Episode
RSS-Feed des Podcasts
Anwendungsentwickler-Podcast #2: Häufige Fragen im
Fachgespräch – Objektorientierung
You Aren’t Gonna Need It
Cohesion metrics
SRP: The Single Responsibility Principle
Datenkapselung (Programmierung)
Eigenschaften (C#-Programmierhandbuch)
Create Getters and Setters – Eclipse Platform
Weitere Infos zum Fachgespräch
Du suchst noch mehr Tipps rund um das Fachgespräch? Dann
schau doch mal in diese Artikel- und Podcast-Kategorie:
Alle Artikel rund um das Fachgespräch.
Kennst du schon meine Hörbücher zur Vorbereitung
auf das Fachgespräch? Unter
dasperfektefachgespraech.de kannst du sie herunterladen. In
insg. über 10 Stunden gehe ich
über 200 Fragen im Detail durch und gebe
Tipps für die Beantwortung.
Und wenn du dich für meinen Newsletter einträgst, bekommst
du immer direkt alle Neuigkeiten von dieser Seite in dein
Postfach geliefert.
Jetzt anmelden!
Weitere Episoden
5 Minuten
vor 3 Wochen
11 Minuten
vor 4 Monaten
8 Minuten
vor 4 Monaten
8 Minuten
vor 4 Monaten
10 Minuten
vor 5 Monaten
In Podcasts werben
Kommentare (0)