Type: concept
Confidence: 0.85
Created: 2026-04-25
Updated: 2026-04-25
Tags: 重构代码异味类型安全AI工程

基础类型沉迷

概述

基础类型沉迷是代码异味的一种,指过度使用基础数据类型(如字符串、整数等)来表示领域概念,而没有创建专门的对象来封装这些概念的含义和行为。

关键内容

  1. 特征识别:
  2. 用字符串表示特定概念(如邮箱、电话号码)
  3. 用整数表示特殊含义(如金额以分为单位)
  4. 使用基础类型数组而不是对象
  5. 用字符串常量表示类型码
  6. 大量使用魔法数字或魔法字符串

  7. 负面影响:

  8. 在类型层面缺乏验证机制
  9. 相关逻辑散落在整个代码库中
  10. 容易传递错误的值类型
  11. 缺少领域对象,不能封装相关行为
  12. 难以确保数据的一致性和有效性

  13. 重构策略:

  14. Replace Primitive with Object:将基础类型替换为对象
  15. Replace Type Code with Class:用类替换类型代码
  16. Replace Type Code with Subclasses:用子类替换类型代码
  17. Replace Type Code with State/Strategy:用状态/策略模式替换类型代码

  18. 重构示例: ``` // 重构前:使用基础类型 const user = { email: 'john@example.com', // 只是字符串 phone: '1234567890', // 只是字符串 status: 'active', // 魔法字符串 balance: 10050 // 以分为单位的整数 };

// 重构后:使用专用对象 const user = { email: new Email('john@example.com'), phone: new PhoneNumber('1234567890'), status: UserStatus.ACTIVE, balance: Money.cents(10050) }; ```

来源

相关