Extract Method
From CSSEMediaWiki
(Difference between revisions)
Brett Ward (Talk | contribs) m |
Brett Ward (Talk | contribs) |
||
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. | + | 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 | + | In cases where extracting a method is not feasible, replacing the method with a [[Method Object]] may be the next step. |
---- | ---- |
Revision as of 10:32, 14 October 2009
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