Type: concept
Confidence: 0.85
Created: 2026-04-25
Updated: 2026-04-25
Tags: 重构代码异味函数设计AI工程

长参数列表

概述

长参数列表是代码异味的一种,指函数或方法接收过多参数的情况。这通常表明该函数承担了过多职责,或者相关数据应该被组织成对象。

关键内容

  1. 特征识别
  2. 方法参数超过4个
  3. 一些参数总是成对或成组出现
  4. 布尔参数用于改变方法的行为
  5. 经常需要传递null或undefined值
  6. 参数顺序容易混淆

  7. 负面影响

  8. 难以正确调用函数
  9. 参数顺序容易搞错
  10. 暗示方法承担了过多职责
  11. 难以添加新的参数
  12. 降低了代码的可读性和可维护性

  13. 重构策略

  14. Introduce Parameter Object:将相关参数封装成对象
  15. Preserve Whole Object:传递整个对象而不是分离的值
  16. Replace Parameter with Method Call:用方法调用代替参数传递
  17. Remove Flag Argument:消除布尔标志参数

  18. 重构示例: ``` // 重构前:过长的参数列表 function createUser(firstName, lastName, email, phone, street, city, state, zip, isAdmin, isActive, createdBy) { // ... }

// 重构后:参数对象封装 function createUser(personalInfo, address, options) { // personalInfo: { firstName, lastName, email, phone } // address: { street, city, state, zip } // options: { isAdmin, isActive, createdBy } } ```

来源

相关