CSC/ECE 517 Fall 2009/wiki1a 8 nd: Difference between revisions
Jump to navigation
Jump to search
Nachiketag (talk | contribs) (→Method) |
Nachiketag (talk | contribs) (→Object) |
||
Line 65: | Line 65: | ||
***Replace Parameter with Explicit Methods | ***Replace Parameter with Explicit Methods | ||
=Object= | ==Object== | ||
**'''Replacements with Objects''' | **'''Replacements with Objects''' | ||
Line 82: | Line 82: | ||
***Refactor Architecture by Tiers | ***Refactor Architecture by Tiers | ||
***Self Encapsulate Field | ***Self Encapsulate Field | ||
=Code= | =Code= |
Revision as of 04:39, 5 September 2009
Problem Statement
The list of refactorings has become quite long. But people don't remember long lists very well. To promote learning the different patterns, they should be categorized in some way, or perhaps, along various dimensions. As a reference we have taken the list of refactorings available here and categorized them along as many different dimensions as makes sense.
Here are the categories & sub-categories using which the refactorings available here have been categorized.
Categorization of Refactoring Methods
Package
- Extract Package
- Move Class
Class
- Changing Class Association
- Change Unidirectional Association to Bidirectional
- Change Unidirectional Association to Bidirectional
- Changing Class Association
- Change of Class Structure
- Collapse Hierarchy
- Duplicate Observed Data
- Extract Class
- Extract SubClass
- Extract SuperClass
- Inline Class
- Replace Subclass with Fields
- Separate Data Access Code
- Change of Class Structure
- Addition to a Class
- Pull up Constructor Body
- Pull up Field
- Pull up Method
- Push Down Field
- Push Down Method
- Addition to a Class
Method
- Meaningful and Detailed Method Calls
- Add Parameter
- Rename Method
- Preserve Whole Object
- Meaningful and Detailed Method Calls
- Change of Structure of the Method Code
- Extract Method
- Inline Method
- Consolidate Conditional Expression
- Encapsulation Collection
- Form Template Method
- Replace Nested Conditional with Guard Clauses
- Replace Parameter with Method
- Change of Structure of the Method Code
- Change Method Call Hierarchy
- Remove Middle man
- Replace Delegation with Inheritance
- Replace Inheritance with Delegation
- Change Method Call Hierarchy
- Improve Method Readability
- Introduce Explaining Variable
- Replace Magic No with Symbolic Constant
- Split Temporary Variable
- Improve Method Readability
- Method Code Refactoring based on Method Arguments
- Replace Conditional with Polymorphism
- Replace Conditional with Visitor
- Replace Parameter with Explicit Methods
- Method Code Refactoring based on Method Arguments
Object
- Replacements with Objects
- Introduce Null Object
- Replace Array with Object
- Introduce Parameter Object
- Replace Data Value with Object
- Replace Method with Method Object
- Replacements with Objects
- Object Initialization
- Replace Constructor with Factory Method
- Object Initialization
- Accessing the Object/Data
- Change Reference to Value
- Change Value to Reference
- Refactor Architecture by Tiers
- Self Encapsulate Field
- Accessing the Object/Data
Code
- Code Optimization
- Replace Temp with Query
- Consolidate Duplicate Conditional Fragments
- Decompose Conditional
- Inline Temp
- Introduce Assertion
- Replace Iteration with Recursion
- Remove Control Flag
- Code Optimization
- Redundant Code Elimination
- Parametrize Method
- Remove Parameter
- Redundant Code Elimination
- Method Code Simplification
- Remove Double Negative
- Replace Assignment with Initialization
- Encapsulate Downcast
- Reduce Scope of Variable
- Reverse Conditional
- Separate Query from Modifier
- Split Loop
- Substitute Algorithm
- Method Code Simplification
- "Removal of "Type Code"
- Replace Type Code with Class
- Replace Type Code with State/Strategy
- Replace Type Code with Subclasses
- "Removal of "Type Code"
Refactoring for Privacy
- Hide Delegate
- Hide Method
- Encapsulate Field
- Hide Presentation Tier-Specific Details from the Business tier
- Introduce Business Delegate
- Wrap Entities with Session
Dealing with Exceptions
- Remove Error Code with Exception
- Replace Exception with Test