首页/开发/代码质量与评审速查/坏味道:过长参数列表(Long Parameter List)
重构手法62 条

坏味道:过长参数列表(Long Parameter List)

参数过多表示函数依赖面过宽:把成组参数换成对象(Introduce Parameter Object)、把查询替换为对象方法(Replace Parameter with Query)、移除多余参数。

信号4 个以上参数、多个参数总是成对出现
手法Introduce Parameter Object / Preserve Whole Object / Remove Flag Argument

前后对比

前后对比
// 之前
badge(name, age, dept, title, id)

// 之后
badge(employee)
参数对象不要沦为数据袋:给它行为(如校验、格式化),或在后续重构中继续移动职责。

易错点

  • 参数顺序相近类型(int, int):调用处极易传反
  • 引入参数对象后直接暴露所有字段:封装形同虚设

数据来源与参考

  • 《重构》第 2 版 · 第 3 章(Long Parameter List)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌