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) }; ```

来源

相关