06 - Klassenentwurf Flashcards
Kopplung (coupling)
Der Begriff Kopplung beschreibt den Grad der Abhängigkeiten zwischen zwei Klassen. Wir streben für ein System eine möglichst lose Kopplung (loos coupling) an, also ein System in dem Klassen möglichst unabhängig voneinander sind und über möglichst schmale, wohldefiniert Schnittstellen kommunizieren.
Kohäsion (cohesion)
Der Begriff Kohäsion beschreibt, wie gut eine Programmeinheit eine logische Aufgabe oder Einheit abbildet. Gut - hohe Kohäsion gleich eine wohldefinierte Aufgabe pro Klasse (SRP).
Code-Duplizierung (code duplication)
Unterschiedliche Teile des Codes sind identisch. Es ist ein Indiz für einen schlechten Entwurf.
Entwurf nach Zuständigkeiten (Single Responsibility Principle)
Ist ein Entwurfsprozess bei dem jede Klasse eine klare Verantwortung zugewiesen wird.
Kappselung (encapsulation)
Saubere Kapselung reduziert Kopplung und führt deshalb zu besseren Entwürfen.
Änderungen lokal halten (open-close principle)
Eines der Hauptziele eines guten Klassenentwurfs lautet: Änderungen lokal halten. Eine Änderung an einer Klasse sollte einen möglichst geringen Einfluss auf andere Klassen haben.
Kohäsion von Mehtoden
Eine Methode mit hoher Kohäsion ist für genau eine wohldefinierte Aufgabe verantwortlich.
Kohäsion von Klassen
Eine Klasse mit hoher Kohäsion repräsentiert genau eine wohldefinierte Einheit.
Refactoring (refactoring)
Refactoring ist eine Aktivität, bei der ein bestehender Entwurf restrukturiert wird, um die Qualität des Klassenentwurfs zu erhalten.