การ Refactor Code แบบ Replace Parameter with Method คือการลดพารามิเตอร์โดยการนำ method เข้ามาช่วยในการเขียนโค้ด
โดยมีตัวอย่างโค้ดดังนี้ (ภาษา Ruby) แบบยังไม่ได้ทำการ Refactor Code
[code]
def get_price()
base_price = quantity * item_price
discount_level = ''
if quantity > 100
discount_level = 2
else
discount_level = 1
end
final_price = discounted_price(base_price, discount_level)
return final_price
end
private
def discounted_price(base_price, discount_level)
if discount_level == 2
return base_price * 0.1
else
return base_price * 0.05
end
end
[/code]
ขั้นตอนที่ 1 ในการ Refactor Code จะทำการลดพารามิเตอร์ของ discount_level ออกมาเป็น method จะได้ดังนี้
[code]
def get_price()
base_price = quantity * item_price
final_price = discounted_price(base_price)
return final_price
end
private
def get_discount_level
if quantity > 100
return 2
else
return 1
end
end
def discounted_price(base_price)
if get_discount_level() == 2
return base_price * 0.1
else
return base_price * 0.05
end
end
[/code]
ขั้นตอนที่ 2 ในการ Refactor Code จะทำการลดพารามิเตอร์ของ base_price ออกมาเป็น method จะได้ดังนี้
[code]
def get_price
final_price = discounted_price()
return final_price
end
private
def base_price
return quantity * item_price
end
def get_discount_level
if quantity > 100
return 2
else
return 1
end
end
def discounted_price()
if get_discount_level() == 2
return base_price() * 0.1
else
return base_price() * 0.05
end
end
[/code]
**สรุป จากการโค้ดตัวอย่างโดยตอนแรกจะมีการใช้พารามิเตอร์ส่งไปหา method และหลังจาก refactor code
พารามิเตอร์ที่มีอยู่ก็โดย refactor เป็น method ทั้งหมด จะทำให้แยกโค้ดเป็นสัดส่วน debug ได้ง่ายกว่าเดิม