首页/开发/代码质量与评审速查/手法:Introduce Parameter Object(引入参数对象)
重构手法62 条

手法:Introduce Parameter Object(引入参数对象)

把总是成组出现的参数替换为一个对象:调用更短、默认值与校验有归属,后续行为也能逐步搬进该对象;适用于 Data Clumps 坏味道。

信号同一组参数在多个函数重复出现
收益参数越界更少见、可承载行为
延伸可再引入 Preserve Whole Object

Java 示例

Java 示例
// 之前
schedules.add(from, to, name);

// 之后
schedules.add(new DateRange(from, to), name);

易错点

  • 参数对象字段全公开:校验仍散落在外
  • 只在单个函数内使用就建类:先看重复模式再抽象

数据来源与参考

  • 《重构》第 2 版 · 第 6 章(Introduce Parameter Object)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌