Refactor Code >> Replace Parameter with Method

การ 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 ได้ง่ายกว่าเดิม