Show Menu
Cheatography

Refactoring Operations Cheat Sheet by

Bedeutung der Refactoring Operationen

Operat­ionen zur Verbes­serung der Kodequ­alität

Operation
Umfang / Auswirkung
Ziel
Umbene­nnung von Klassen, Methoden, Feldern, Packages, Parametern und lokalen Variablen
Beim Umbenennen müssen alle zugehö­rigen Referenzen optional auch Javadocs umbenannt werden
Bessere Lesbarkeit und Verstä­ndl­ichkeit
Verschiebe Klasse
Versch­ieben einer Klasses oder eines Interfaces in ein anderes Package (ggf. auch unter einer anderen Verzei­chn­isw­urzel). Alle Referenzen im Kode müssen umbenannt werden.
Fachliche Zugehö­rigkeit klarst­ellen. Erkennen von Schnit­tst­ellen.
Verschiebe Method­e/Field
Versch­ieben von Methoden und Felder in andere Klassen. Alle Referenzen werden aktual­isiert. Sichtb­arkeit kann optional verändert werden.
Auflösen von God Klassen und Beseit­igung von Feature Envies.
Extrahiere Methode
Heraus­lösen eines Kodebl­ockes als eigene Methode.
Verbes­serte Strukt­uri­erung, Verringern der Versch­ach­tel­ung­stiefe, Beseit­igung von Kodedo­ppe­lungen.
Extrahiere Superk­lasse
Ausgew­ählte Felder und Methoden werden als Klasse extrah­iert. Die bestehende Klasse wird von der neuen Klasse abgele­itet.
Bessere Abbildung von Spezia­lis­ierung. Verringert die Anzahl der Methoden und Felder einer Klasse.
Extract Interface
Ausgew­ählte Felder und Method­ens­ign­aturen werden als Interface extrah­iert.
Bereit­ste­llung einer einges­chr­änkten Sicht auf die Klasse für öffent­liche Schnit­tst­ellen.
Anpassung der Methoden Signatur
Es können Reihen­folge, Typ und Anzahl der Parameter angepasst werden.
Verbes­serung der Lesbar­keit.
Mindest Zugrif­fsr­echte
Ermittelt die minimal notwen­digen Zugrif­fsr­echte in Bezug auf Sichtb­arkeit für Felder und Methoden.
Zustands hiding
Erstelle Klasse­nko­nst­ruktor
Erzeugt ein Konstr­uktor der für jedes Feld der Klasse einen Parameter besitzt.
Verbes­serte Strukt­uri­erung
Pull Up oder Push Down Method
Verschiebt Methoden in die Super oder Subklasse.
Klärung von Fachli­chkeit.
Lokale Variable einführen
Aus dem Kode wird ein Ausdruck extrahiert und einer lokalen Variablen zugewi­esen. Anschl­iessend werden die Auftreten des Ausdruckes durch die Variable ersetzt.
Explizites Benennen eines Ausdruckes um damit klar zu stellen, warum dieser Schritt getan werden muss oder das dieser Schritt notwendig ist und kein Flücht­igk­eit­sfe­hler. Oder zum Klarst­ellen der Bedeutung eines Ausdru­ckes.
Ersetze Variable durch Method
Es wird eine Methode aus dem initia­lis­ier­enden Ausdruck einer lokalen Variable gebildet, welche das Ergebnis des Audruckes zurück­lie­fert. Alle Verwen­dungen der lokalen Variable werden durch den Aufruf der Methode ersetzt und die lokale Variable wird entfernt.
Verbes­serte Strukt­uri­erung
Konver­tiere anonyme Klasse zu Innere Klasse.
Der Ausdruck zur Initia­lis­ierung einer anonymen Klasse wird in eine innere Klasse umgewa­ndelt.
Verbes­serte Lesbarkeit und Struktur.
Delegiere auf Superk­lasse
Die Ableitung von der Superk­lasse wird entfernt. Stattd­essen wird ein Feld vom Typ der Superk­lasse definiert und im Konstr­uktor initia­lis­iert. Alle vormals geerbten Methoden werden deklariert und im Body wird auf die Methoden des Feldes delegiert.
Auflösung von Mehrfa­chv­ere­rbung.

Operat­ionen für Zwisch­ens­chritte im Refact­oring

Operation
Umfang / Auswirkung
Einbetten einer Methode (inline method)
Kopiert den Method­­en­k­örper in die aufruf­­enden Stellen und ersetzt die Parameter durch lokale Variab­­le­n­b­en­­utzung oder defini­­ti­onen.
Encaps­ulate Field
Ersetzen des Zugriffes auf ein Field durch Verwendung der entspr­­ec­h­enden Getter oder Setter Methode
Erstellen einer Factory Methode
Zu einem besteh­enden Constr­uctor wird eine Factory Methode erstellt. Alle Verwen­dungen des Constr­uctors werden durch Benutzung der Factory Methode ersetzt. Der Constr­uctor wird in der Sichtb­arkeit einges­chr­änkt, so dass nur noch die Factory Methode ihn aufrufen kann.
Inline Variable
Alle Verwen­dungen einer lokalen Variable werden durch deren initia­lis­ier­enden Ausdruck ersetzt und die lokale Variable gelöscht.
 

Comments

No comments yet. Add yours below!

Add a Comment

Your Comment

Please enter your name.

    Please enter your email address

      Please enter your Comment.

          Related Cheat Sheets

          Basic Supply Chain Practice Cheat Sheet

          More Cheat Sheets by FunThomas424242

          Praktische Java Libs Cheat Sheet