GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Architecture
  • Refactoring
  • Agile
  • Delivery
  • Microservices
  • Data
  • Testing
  • DSL
  • About
  • Books
  • FAQ
  • Videos
  • Content Index
  • Fragments

This view

  • Original page
  • New address

GeezerVison is showing refactoring.com — Catalog of Refactorings

This is the online catalog of refactorings, to support my book Refactoring 2nd Edition.

This catalog of refactorings includes those refactorings described in my original book on Refactoring, together with the Ruby Edition.

Using the Catalog  ▶

I've put together this catalog to help you find and explore the refactorings the 2nd edition. Each card shows the name used in the second edition together with any aliases for the refactoring (such as names for first edition refactorings that it replaces). The card links to the refactoring's online page. This page also contains the sketch for the refactoring.

The filter panel at the left allows you to select the refactorings by keyword, and also by which books they appear in. You can save the current filter settings to a URL by using the “#” permalink at the bottom of the filter panel.


Tags

basic
encapsulation
moving-features
organizing-data
simplify-conditional-logic
refactoring-apis
dealing-with-inheritance
collections
delegation
errors
extract
parameters
fragments
grouping-function
immutability
inline
remove
rename
split-phase
variables

#

Change Function Declaration

Add Parameter • Change Signature • Remove Parameter • Rename Function • Rename Method

Change Reference to Value

Change Value to Reference

Collapse Hierarchy

Combine Functions into Class

Combine Functions into Transform

Consolidate Conditional Expression

Decompose Conditional

Encapsulate Collection

Encapsulate Record

Replace Record with Data Class

Encapsulate Variable

Encapsulate Field • Self-Encapsulate Field

Extract Class

Extract Function

Extract Method

Extract Superclass

Extract Variable

Introduce Explaining Variable

Hide Delegate

Inline Class

Inline Function

Inline Method

Inline Variable

Inline Temp

Introduce Assertion

Introduce Parameter Object

Introduce Special Case

Introduce Null Object

Move Field

Move Function

Move Method

Move Statements into Function

Move Statements to Callers

Parameterize Function

Parameterize Method

Preserve Whole Object

Pull Up Constructor Body

Pull Up Field

Pull Up Method

Push Down Field

Push Down Method

Remove Dead Code

Remove Flag Argument

Replace Parameter with Explicit Methods

Remove Middle Man

Remove Setting Method

Remove Subclass

Replace Subclass with Fields

Rename Field

Rename Variable

Replace Command with Function

Replace Conditional with Polymorphism

Replace Constructor with Factory Function

Replace Constructor with Factory Method

Replace Control Flag with Break

Remove Control Flag

Replace Derived Variable with Query

Replace Error Code with Exception

Replace Exception with Precheck

Replace Exception with Test

Replace Function with Command

Replace Method with Method Object

Replace Inline Code with Function Call

Replace Loop with Pipeline

Replace Magic Literal

Replace Magic Number with Symbolic Constant

Replace Nested Conditional with Guard Clauses

Replace Parameter with Query

Replace Parameter with Method

Replace Primitive with Object

Replace Data Value with Object • Replace Type Code with Class

Replace Query with Parameter

Replace Subclass with Delegate

Replace Superclass with Delegate

Replace Inheritance with Delegation

Replace Temp with Query

Replace Type Code with Subclasses

Extract Subclass • Replace Type Code with State/Strategy

Return Modified Value

Separate Query from Modifier

Slide Statements

Consolidate Duplicate Conditional Fragments

Split Loop

Split Phase

Split Variable

Remove Assignments to Parameters • Split Temp

Substitute Algorithm

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.