Home › Ratgeber › Java › Refactoring
25 Jahre Erfahrung FreeCall 0800 tutegos
Refactoring
Die Seite sowie Unterseiten sind Übersetzungen der Refactoring-Liste von Martin Fowler.
Die Refactorings stammen von Martin Fowler und anderen Autoren. Wenn Sie Anmerkungen zu den Refactorings haben, senden Sie bitte eine E-Mail an den Autor und an Martin Fowler im CC. Weder Martin Fowler noch Addison-Wesley sowie die anderen Autoren übernehmen irgendwelche Verantwortungen für die Refactorings.
Methoden zusammenstellen (Composing Methods)
- Methode extrahieren (Extract Method)
- Methode inline setzen (Inline Method)
- Temporäre Variable entfernen (Inline Temp)
- Ersetze temporäre Variable durch Anfragemethode (Replace Temp with Query)
- Beschreibende Variable einführen (Introduce Explaining Variable)
- Trenne temporäre Variable (Split Temporary Variable)
- Entferne Zuweisung an Parametervariable (Remove Assignments to Parameters)
- Ersetze eine Methode durch ein Methoden-Objekt (Replace Method with Method Object)
- Ersetze Algorithmus (Substitute Algorithm)
Eigenschaften zwischen Objekten verschieben (Moving Features Between Objects)
- Verschiebe Methode (Move Method)
- Verschiebe Attribut (Move Field)
- Extrahiere Klasse (Extract Class)
- Setze Klasse inline (Inline Class)
- Verstecke den Delegate (Hide Delegate)
- Entferne Klasse in der Mitte (Remove Middle Man)
- Führe fremde Methode ein (Introduce Foreign Method)
- Führe lokale Erweiterung ein (Introduce Local Extension)
Daten organisieren (Organizing Data)
- Kapsele eigene Attributzugriffe (Self Encapsulate Field)
- Ersetze eigenes Attribut durch Objektverweis (Replace Data Value with Object)
- Ersetzte Wert durch Referenz (Change Value to Reference)
- Ersetzte Verweis durch Wert (Change Reference to Value)
- Ersetze Array durch ein Objekt (Replace Array with Object)
- Beobachtete Daten verdoppeln (Duplicate Observed Data)
- Unidirektionale Beziehung in bidirektionale Beziehung ändern (Change Unidirectional Association to Bidirectional)
- Bidirektionale Beziehung in unidirektionale Beziehung ändern (Change Bidirectional Association to Unidirectional)
- Ersetze magische Zahl durch symbolische Konstante (Replace Magic Number with Symbolic Constant)
- Kapsele Attribut (Encapsulate Field)
- Kapsele die Collection (Encapsulate Collection)
- Ersetze einen Datensatz durch eine Datenklasse (Replace Record with Data Class)
- Ersetze Typenschlüssel durch eine Klasse (Replace Type Code with Class)
- Ersetzte Typ-spezifischen Code durch Unterklassen (Replace Type Code with Subclasses)
- Ersetzte Typ-spezifischen Code durch Zustand/Strategie-Muster (Replace Type Code with State/Strategy)
- Ersetze Unterklassen durch Attribute (Replace Subclass with Fields)
Bedingte Ausdrücke vereinfachen (Simplifying Conditional Expressions)
- Zerlege Bedingung (Decompose Conditional)
- Bedingungen von Ausdrücken zusammenführen (Consolidate Conditional Expression)
- Wiederholte Anweisungen aus Bedingungen zusammenführen (Consolidate Duplicate Conditional Fragments)
- Kontroll-Flags entfernen (Remove Control Flag)
- Geschachtelte Bedingungen durch Wächter ersetzen (Replace Nested Conditional with Guard Clauses)
- Ersetze Fallunterscheidungen durch Polymorphie (Replace Conditional with Polymorphism)
- Null-Objekt einführen (Introduce Null Object)
- Assertions einführen (Introduce Assertion)
Methodenaufrufe vereinfachen (Making Method Calls Simpler)
- Benenne Methode um (Rename Method)
- Parameter hinzufügen (Add Parameter)
- Entferne Parameter (Remove Parameter)
- Trenne Anfrage vom Verändern (Separate Query from Modifier)
- Parametrisiere Methode (Parameterize Method)
- Ersetze Parameter durch explizite Methoden (Replace Parameter with Explicit Methods)
- Vorhandenes Objekt übergeben (Preserve Whole Object)
- Ersetze Parameter durch Methode (Replace Parameter with Method)
- Parameter-Objekt einführen (Introduce Parameter Object)
- Entferne Setter (Remove Setting Method)
- Verstecke eine Methode (Hide Method)
- Ersetze Konstruktor mir Fabrik-Methode (Replace Constructor with Factory Method)
- Explizite Typanpassung kapseln (Encapsulate Downcast)
- Ersetze Fehlercodes durch Ausnahmen (Replace Error Code with Exception)
- Vermeide Ausnahmen durch Tests (Replace Exception with Test)
Umgang mit Generalisierung (Dealing with Generalization)
- Attribut hochziehen (Pull Up Field)
- Methode hochziehen (Pull Up Method)
- Konstruktor-Köper hochziehen (Pull Up Constructor Body)
- Methode nach unten verlegen (Push Down Method)
- Attribut nach unten verlegen (Push Down Field)
- Extrahiere Unterklasse (Extract Subclass)
- Extrahiere Oberklasse (Extract Superclass)
- Extrahiere Schnittstelle (Extract Interface)
- Hierarchien abbauen (Collapse Hierarchy)
- Schreibe eine Schablonenmethode (Form Template Method)
- Ersetzte Vererbung durch Delegation (Replace Inheritance with Delegation)
- Ersetzte Delegation durch Vererbung (Replace Delegation with Inheritance)
Weiteres
- Konvertiere dynamische in statische Erzeugung (Convert Dynamic to Static Construction)
- Konvertiere statische in dynamische Erzeugung (Convert Static to Dynamic Construction)
- Extrahiere Paket (Extract Package)
- Führe Synchronizer Token ein (Introduce Synchronizer Token)
- Verschiebe Klasse (Move Class)
- Beschränke Gültigkeit der Variable (Reduce Scope of Variable)
- Entferne doppelte Verneinung (Remove Double Negative)
- Verbinde Definition und Initialisierung einer Variablen (Replace Assignment with Initialization)
- Ersetze Fallunterscheidungen durch Besucher-Muster (Replace Conditional with Visitor)
- Ersetzte Iteration durch Rekursion (Replace Iteration with Recursion)
- Ersetze Rekursion durch Iteration (Replace Recursion with Iteration)
- Ersetze statische Variable durch Parameter (Replace Static Variable with Parameter)
- Drehe Bedingung um (Reverse Conditional)
- Trenne Schleife (Split Loop)
- Konvertiere dynamische in statische Erzeugung (Convert Dynamic to Static Construction)
- Konvertiere statische in dynamische Erzeugung (Convert Static to Dynamic Construction)
Enterprise Java
Eliminiere Kommunikation zwischen Entity-Beans (Eliminate Inter-Entity Bean Communication)Session-Beans zusammenführen (Merge Session Beans)Ummantele Entity-Beans durch Session-Beans (Wrap entities with session)Nutze einen Connection-Pool (Use a Connection Pool)Trenne Datenzugriffscode (Separate Data Access Code)Geschäftslogik in Session-Beans legen (Move Business Logic to Session)Verstecke Schichten-spezifische Details von der Business-Tier (Hide presentation tier-specific details from the business tier)Business-Delegate einführen (Introduce Business Delegate)Controller einführen (Introduce A Controller)Ungleiche Logik lokalisieren (Localize Disparate Logic)Refactoring einer Architektur durch Schichten (Refactor Architecture by Tiers)