過長的參數列 (Long Parameter List)

★★★★Draft

FromRefactoring

📚 From the Books

過長的參數列 (Long Parameter List)Code Smells

函式的參數列太長,呼叫端得記住一長串參數的順序與意義。函式應專注於「做什麼」,一長串參數卻把「如何做」的細節都灌進了介面。

🧠 Why It's a Problem

NOTE

對應重構是把相關參數組合成 Parameter Object(Introduce Parameter Object):用一個有名字的物件,取代一串零散的參數。

⚖️ Refactoring

Introduce Parameter Object:辨認出總是一起傳遞的那組參數,把它們包成一個物件。

前 — 一長串扁平參數
function bookConcert(customer, date, seatRow, seatNumber, priceBand) {
  // ...
}

bookConcert(alice, '2026-07-02', 12, 8, 'A'); // 每個位置是什麼?得回去查簽章

128'A' 分別是什麼?呼叫端讀不出來。

後 — 用有名字的物件收攏相關參數
function bookConcert(customer, show) {
  // show = { date, seat: { row, number }, priceBand }
}

bookConcert(alice, {
  date: '2026-07-02',
  seat: { row: 12, number: 8 },
  priceBand: 'A',
});

參數變少、意義變清楚;seat 這組資料也終於有了名字。

🔑 Takeaways

✍️ My Notes

No notes yet — jot your takeaways or Q&A here.

📖 Further Reading