原始的痴迷
迹象和症状
使用原语而不是小对象来完成简单任务(例如货币、范围、电话号码的特殊字符串等)。
使用常量来编码信息(例如常量)
User_admin_role = 1
指具有管理员权限的用户。)在数据数组中使用字符串常量作为字段名。

问题的原因
像大多数其他气味一样,原始的迷恋是在软弱的时候产生的。“只是一个存储数据的字段!”程序员说。创建一个基本字段要比创建一个全新的类容易得多,对吧?事情就这样完成了。然后需要另一个字段,并以同样的方式添加。你瞧,这个班级变得庞大而笨重。
原语通常用于“模拟”类型。因此,您使用的不是单独的数据类型,而是一组数字或字符串,它们构成了某些实体的允许值列表。然后通过常量给这些特定的数字和字符串起简单易懂的名字,这就是为什么它们被广泛传播的原因。
另一个蹩脚的原语使用例子是现场模拟。该类包含大量不同的数据,字符串常量(在类中指定)用作获取这些数据的数组下标。
治疗
如果您有各种各样的基元字段,可以在逻辑上将其中一些字段分组到它们自己的类中。更好的是,将与此数据相关的行为也移动到类中。对于这个任务,试试用对象替换数据值.
当复杂的数据编码在变量中,使用用类替换类型代码,用子类替换类型代码或将类型代码替换为状态/策略.
如果变量之间有数组,则使用用对象替换数组.

回报
由于使用对象而不是原语,代码变得更加灵活。
更好的代码可理解性和组织。对特定数据的操作在同一位置,而不是分散。不用再猜测所有这些奇怪的常量的原因,以及它们为什么在数组中。
更容易找到重复的代码。