Refactoring |
OO\FO |
Im Code |
In der GUI |
Bemerkungen |
Create Base |
OO |
x |
Erstellt eine Basisklasse in einem vorgegebenen Layer. Das vorgegebenene Layer muss bereits existieren
und der Klassenname darf in dem Layer noch nicht vorkommen. (Bei der Implementierung im Typsystem-Code
muss die Datei nicht unbedingt im selben Ordner landen wie die anderen Klassen des Layers. Bei der
GUI-Umsetzung wird darauf geachtet das alle Klassen im selben Ordner sind.) |
|
Create Refinement |
FO |
x |
Erstellt eine Refinementklasse in einem vorgegebenen Layer. Wenn das vorgegebenene Layer noch nicht
existiert, wird es erstellt. Der Klassenname darf in dem Layer noch nicht vorkommen. Die Basisklasse
zum Refinement muss angegeben werden und muss existieren. (Bei der Implementierung im Typsystem-Code
muss die Datei nicht unbedingt im selben Ordner landen wie die anderen Klassen des Layers. Bei der
GUI-Umsetzung wird darauf geachtet das alle Klassen im selben Ordner sind.) |
|
Create Method |
OO |
x |
Erstellt eine Methode in einer vorgegebenen Klasse, die bereits existieren muss. (Beim Erstellen wird
noch nicht geprüft ob in der Klasse bereits eine Methode mit dem Namen und den selben Parametern
vorhanden ist. Das geschieht erst, wenn bei einem Refactoring auf diese Methode zugegriffen wird.) |
|
Change Modifier |
OO\FO |
x |
x |
Ändert die Modifier von Klassen, Methoden und Attributen. Dieses Refactoring ist noch nicht komplett
implementiert. Zur Zeit lassen sich nur Sichtbarkeits-Modifier (private, protected, public,
packageprivate) ändern. Bei Klassen wird darauf geachtet, dass diese nur public oder packageprivate
sein können. Die Änderungen können wahlweise nur in der aktuellen Klasse oder in allen Refinements
einschließlich der Basisklasse durchgeführt werden. |
Move Refinement |
FO |
x |
x |
Extrahiert eine Refinementklasse in ein anderes Layer. Wenn das Layer noch nicht existiert, wird es
angelegt. Es wird nicht geprüft, ob im Layer schon eine Klasse mit dem selben Namen existiert. |
Move Refining Method |
FO |
x |
x |
Extrahiert eine Refinementmethode in eine andere Refinementklasse. Wenn das Ziellayer oder die
Refinementklasse noch nicht existieren, werden sie angelegt. Das Extrahieren von Konstruktoren
wird noch nicht unterstützt. Methoden mit dem selben Namen und den selben Parametern dürfen noch
nicht in der Zielklasse vorhanden sein. |
Extract Method Statements |
FO |
x |
x |
Extrahiert Codefragmente aus einer Methode in eine Refinementklasse. Die Methode darf im Ziel-Refinement
noch nicht existieren. Die gewählten Codefragmente müssen sich alle im selben Scope befinden (und die
Anfangszeile des Codebereichs muss größergleich der Endzeile sein). Da das Refactoring auf der Basis von
Zeilennummern geschieht, müssen alle neuen Statements in einer neuen Zeile erfolgen, d.h. folgendes
Statement könnte nicht extrahiert werden: |