【代码重构(Refectoring)系列教程】基本型别偏执(Primitive Obsession)

本文探讨了编程中基本类型偏执的问题,分析了其产生的原因,并提供了多种重构方法,如以对象代替数据、引入参数对象等,以提高代码的可读性和灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基本类型偏执(Primitive Obsession)

●症状和特点

   对于一些简单的工作(比如货币,取值范围,电话号码这样的特殊字符串),使用基本类型而不去使用小的对象去解决。
   使用常量来表示一些代码信息。(比如使用常量USER_ADMIN_ROLE = 1来表示用户的管理权限)
   在数据数组中,使用字符串常量来作为数组的下标名称。
在这里插入图片描述

●问题产生的原因

  和代码中的其它味道一样,对于基本类型的过度使用常常发生在程序员意识不够坚定时。“就只使用一小块地方来存储一些数据“,程序员说。创建一块基本类型的区域比新建一整个类容易很多,对吧?就像这样,另一块基本类型的区域就像这样产生了。看吧,代码也就变得臃肿且笨拙。
  基本数据类型通常用来模拟某些特征。对于某些实例来说,需要模拟的不是某一个单独的数据类型,而是一系列的数字或者字符串组成的列表。一系列有着通俗易懂的名字的变量就用来表示这些数字或者字符串了,这也就是为什么这种情况变得非常普遍的原因了。
  另一种情况是为了模拟一段区域。比如类中包含了一大组数据,类中定义的字符串常量也就作为数组的下标来表示这些数据了。
在这里插入图片描述

●解决方法

  如果你有很多各种各样的基本数据类型,你可以将他们按照逻辑组织在一起,形成专门的类。将和这些数据相关的行为方法也放到这个类中会更好。对于这种情况,尝试使用以对象来代替数据法
在这里插入图片描述
  如果这些基本数据类型使用在方法的参数中,可以使用引入参数对象法维护整体对象法
  当复杂的数据用变量编码时,可以使用以类代替类型法,以子类代替类型法,以状态/策略代替类型法
  如果变量中含有数组,可以使用以对象代替数组法。
在这里插入图片描述

●优势

  由于使用了对象代替了基本数据类型,代码变得更加灵活。
  代码更具有可读性和条理性。对于特定的数据的操作被放在了相同的位置,而不是散落在各处。我们也不用再去猜测这些奇怪的变量代表着什么,为什么他们在数组中。
  更容易找到重复的代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值