程式強健度取決於當中的資料結構。
適當的資料結構會讓行為程式碼簡單直接,判斷方法之一是採用領域驅動設計(Domain-driven Design)。

Move Field
傳遞某記錄給函式時也得傳遞另筆記錄、修改某記錄也會更動另筆記錄時,就得考慮移動欄位了。
這類重構在類別環境中較易執行,因為資料都被封裝在存取方法後面。
# Before
class Employee:
def __init__(self, name, email, salary):
self.name = name
self.email = email
self.salary = salary
class Payroll:
def __init__(self, tax_rate):
self.tax_rate = tax_rate
def calculate_net_salary(self, employee):
return employee.salary - (employee.salary * self.tax_rate)
# After
class Employee:
def __init__(self, name, email):
self.name = name
self.email = email
class Payroll:
def __init__(self, tax_rate, salary):
self.tax_rate = tax_rate
self.salary = salary
def calculate_net_salary(self):
return self.salary - (self.salary * self.tax_rate)