Kapselung

Klassen schneiden: Single Responsibility, Separation of Concerns, Information Hiding, Tell, don’t ask und Law of Demeter

Eine Klasse, die rechnet, prüft, Mails verschickt und speichert, muss sich bei jeder Regeländerung mitändern. Du lernst, Klassen nach Verantwortungen zu schneiden (Single Responsibility Principle), Belange zu trennen (Separation of Concerns), Entwurfsentscheidungen zu verbergen (Information Hiding), Entscheidungen zu den Daten zu verlagern (Tell, don’t ask) und Getter-Ketten aufzulösen (Law of Demeter). Am Bestellabschluss der CSB-Rad-Kata beurteilst Du Kohäsion und Kopplung im UML-Klassendiagramm.

Übungsaufgaben zum UML-Klassendiagramm

Fünf Übungsaufgaben zum UML-Klassendiagramm: zum Einstieg ein Klassendiagramm lesen, eine Methodendeklaration zerlegen, Klassen ergänzen und gewählte Datentypen nach Speicherbedarf beurteilen; danach eine Klasse aus Anforderungen mit Sichtbarkeiten, Datentypen, Konstruktor, Getter und Setter erstellen, ein Klassendiagramm aus Quellcode und einem englischen Text ableiten und Fehler in einer Vorgabe korrigieren sowie ein Modell mit mehreren Klassen, Vererbung und Beziehungen zeichnen.

Klassen implementieren: Konstruktor, Getter, Setter und Objekterzeugung

Ein Klassendiagramm ist erst der Bauplan. Dieser Artikel zeigt, wie Du daraus Code machst: Konstruktoren, die Objekte in einen gültigen Anfangszustand bringen, Getter und Setter mit Prüfungen, Objekterzeugung mit new, Konstruktoren in Unterklassen mit super(…), fortlaufende Nummern über Klassenattribute und was bei der Übergabe von Objekten und Arrays an Methoden wirklich passiert. Alles in Pseudocode, wie er in Aufgaben üblich ist, und zum Vergleich in Java und Python.

Information Hiding: Kapselung in Python (OOP)

Wer gut änderbaren Code programmieren will, der versteckt Implementierungsdetails wie den Zustand von Objekten. Veröffentlicht wird nur, was wirklich benötigt wird. In Python ist es nicht ganz einfach (und eher unüblich), den Rest wegzukapseln. Aber wie lässt sich Kapselung in Python umsetzen?

UML-Klassendiagramm: Sichtbarkeitsmodifikatoren

Kapselung ist ein Konzept der objektorientierten Programmierung (OOP), das verhindern soll, dass Anpassungen des Codes zu Inkonsistenzen führen. Der Zustand der Objekte soll nicht direkt änderbar sein, sondern nur über Methoden, die ggf. weitere Anpassungen vornehmen können: Getter und Setter. Der Artikel stellt die vier Sichtbarkeiten +, -, # und ~ vor und zeigt, wie Du Anforderungen wie „nur lesbar“ im Klassendiagramm umsetzt.