| 场景 | book(customer, true) 之类的调用 |
|---|---|
| 做法 | 拆成 book() / bookExpress() 两个入口 |
| 收益 | 调用语义在函数名上自明 |
Java 示例
Java 示例
// 之前
deliveryDate(order, true)
// 之后
expeditedDeliveryDate(order)布尔参数表示两种行为的函数拆成两个命名函数:调用点自解释、内部分支消失;标志参数是典型的可读性侵蚀点,拆分成本通常很低。
| 场景 | book(customer, true) 之类的调用 |
|---|---|
| 做法 | 拆成 book() / bookExpress() 两个入口 |
| 收益 | 调用语义在函数名上自明 |
// 之前
deliveryDate(order, true)
// 之后
expeditedDeliveryDate(order)