https://sourcemaking.com/ 翻译计划
https://sourcemaking.com/refactoring/smells/primitive-obsession

就像其他的代码气味一样,对于基础类型的痴迷也是诞生于想要简单快速的完成任务。程序员会说:“就是个用于存储数据的字段而已” 。创建一个基础类型比创建一个新的类方便多了,不是么?然后代码就写下去了。然后需要另一个字段,那也是这样创建好了。你瞧,类变得庞大而笨拙。
基础类型通常用于“模拟”类型(例如用Const string模拟Enum)。因此你没有使用单独的数据类型,而是使用一串数字或者字符串来组成可能的值列表。通过常量给这些特殊的数字和字符串一个容易理解的名字,这就是为什么他们传播的如此广泛久远。
另一个使用不当的例子是字段模仿,这个类包含了各种各样的数据和字符串常量(这些在这个类里都是被指定的)被用来作为数组索引去获取数据。
如果你有一些类有很多基础字段,我们可以根据逻辑(功能)分组,并且归类提取到各自的类中。更好的做法是将把和这些字段相关联的行为也移入这个类。对于这个任务,请尝试用对象替换数据值
