Extract Method
From CSSEMediaWiki
(Difference between revisions)
m (Reverted edits by Ebybymic (Talk); changed back to last version by Matthew Harward) |
|||
(6 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
+ | Extracting a method consists of turning a fragment of a method into a method whose name explains the purpose of the method. This may need to be used in methods that show a large number of local variables within the scope of a method, to enhance comprehensibility and reduce complexity. If several of these local-scope variables are modified by the code extracted, [[Split Temporary Variable]] may also need to be used. | ||
+ | |||
+ | In cases where extracting a method is not feasible, replacing the method with a [[Method Object]] may be the next step. | ||
+ | |||
+ | ---- | ||
+ | '''Example:''' | ||
printOwing() { | printOwing() { | ||
Line 14: | Line 20: | ||
printDetails(getOutstanding()); | printDetails(getOutstanding()); | ||
} | } | ||
− | + | ||
void printDetails (double outstanding) { | void printDetails (double outstanding) { | ||
System.out.println ("name: " + _name); | System.out.println ("name: " + _name); | ||
System.out.println ("amount " + outstanding); | System.out.println ("amount " + outstanding); | ||
} | } | ||
+ | |||
+ | == See Also == | ||
+ | |||
+ | {{Refactoring}} |
Latest revision as of 03:23, 25 November 2010
Extracting a method consists of turning a fragment of a method into a method whose name explains the purpose of the method. This may need to be used in methods that show a large number of local variables within the scope of a method, to enhance comprehensibility and reduce complexity. If several of these local-scope variables are modified by the code extracted, Split Temporary Variable may also need to be used.
In cases where extracting a method is not feasible, replacing the method with a Method Object may be the next step.
Example:
printOwing() { printBanner(); //print details System.out.println ("name: " + _name); System.out.println ("amount " + getOutstanding()); }
becomes
void printOwing() { printBanner(); printDetails(getOutstanding()); } void printDetails (double outstanding) { System.out.println ("name: " + _name); System.out.println ("amount " + outstanding); }
See Also