Professional Documents
Culture Documents
Martin Fowler
Refactoring is the process of changing a software system in such
a way that it does not alter the external behavior of the code yet
improves its internal structure. It is a disciplined way to clean up
code that minimizes the chances of introducing bugs.
improving the design of the code after it has bean written.
(bug)
method
Input/Output(Parameters)(Return Value)
class Public Methods
Refactoring
Domain Layer
Domain Model
Transaction
Script
Effort to
Enhanc
e
Table Module
Domain
Model
Pattern
Refactoring
Transaction
Script
Effort to
Enhance
Table Module
Domain Model
Refactoring
Transaction
Script
Transaction
Script
Effort to
Enhance
Change
Transaction
Script
Transaction
Script
Table Module
Effort to
Enhance
Change
Refactoring
Complexity of Domain Logic
--- ^^
PM
Step 2 : method OK
1 Pull Up Method
Transaction Script
methods
Transaction1
doSomeThing()
Transaction1
Transaction2
Transaction3
doSomeThing()
doSomeThing()
doSomeThing()
method
SuperTransaction
doSomeThing()
Transaction1
Transaction2
Transaction3
SuperTransaction
(from case1)
doSomeThing()
doSomeThingSpecial()
Transaction2
Transaction1
(from case1)
(from case1)
SuperTransaction
(from case1)
doSomeThing()
Transaction1
(from case1)
doSomeThingSpecial()
Transaction2
(from case1)
Class2
doSomeThing()
Class1
Class2
doSomeThing()
Package1
Package2
Package2
Package1
ClassA
ClassD
ClassC
ClassB
ClassE
Package2
Package1
ClassA
ClassC
ClassD
ClassB
ClassE
Refactoring
JBuidler
1. Refactoring Pattern
2. Open Source Project