Weitere Informationen auf Seite 322 in Refactoring.
Für Konstruktoren in Unterklassen, die größtenteils identisch sind.
Schreibe einen Superklassekonstruktor. Rufe diesen in Unterklasse-Methoden auf.class Manager extends Employee... public Manager (String name, String id, int grade) { _name = name; _id = id; _grade = grade; }
public Manager (String name, String id, int grade) { super (name, id); _grade = grade; }
Weitere Informationen auf Seite 325 in Refactoring.
Verhalten einer Oberklasse ist nur relevant für einige Unterklassen.
Verschiebe die Methode in diese Unterklassen.
Für weiter Informationen siehe Seite 328 von Refactoring.
Ein Attribut wird nur von einigen Unterklassen verwendet.
Verschiebe das Attribut in die Unterklassen.
Mehr Informationen auf Seite 329 von Refactoring.
Eine Klasse hat Eigenschaften, die nur von einigen Exemplaren verwendet wird.
Erzeuge für die Untermenge an Eigenschaften eine Unterklasse.
Mehr Informationen auf Seite 330 in Refactoring.
Es gibt zwei Klassen mit gemeinsamen Eigenschaften.
Erzeuge eine neue Oberklasse und lege die gemeinsamen Eigenschaften in diese neue Klasse.
Für mehr Informationen siehe Seite 336 von Refactoring.
Unterschiedliche Klienten nutzen die gleiche Untermenge einer Schnittstelle der Klasse. Zwei Klassen haben zum Teil gleiche Schnittstellen.
Mache aus der Teilmenge eine eigene Schnittstelle.
Für mehr Informationen siehe Seite 341 von Refactoring.
Eine Unterklasse und Oberklasse sind sich nicht sehr verschieden.
Bringe sie zusammen.
Für mehr Informationen siehe Seite 344 von Refactoring.
Zwei Methoden in Unterklassen führen ähnliche Schritte in gleicher Reihenfolge aus, doch die Schritte sind im Detail anders.
Fasse die jeweiligen Schritte zu Methoden mit gleicher Signatur zusammen.
Für weitere Informationen siehe Seite 345 in Refactoring.
Eine Unterklasse nutzt nur Teile der Schnittstelle der Oberklasse oder will keine Eigenschaften erben.
Erzeuge ein Attribut für die Oberklasse und passe die Methoden an, do dass sie auf die Methoden der Oberklasse delegieren. Entferne die Unterklasse.
Für mehr Informationen siehe Seite 352 in Refactoring.
Methoden einer Klasse delegieren fast immer an eine andere Klasse.
Der Delegate wird zur Oberklasse.
Weiteres auf Seite 355 in Refactoring.