移除重複程式碼很重要,功能再完善也只是孳生 Bug 的溫床。
提升方法因此重要,但需要穩健測試來驗證。通常我們需先參數化函式或提升欄位,才會再採用此重構。

Pull Up Method
# Before
class Vehicle:
pass
class Car(Vehicle):
def start_engine(self):
print("Car engine started.")
class Truck(Vehicle):
def start_engine(self):
print("Truck engine started.")
# After
class Vehicle:
def start_engine(self):
print("Engine started.")
class Car(Vehicle):
pass
class Truck(Vehicle):
pass