重构你的代码extact method

第六章重新组织函数

提炼函数

解决过长函数的方法第一条

  1. 将函数中的一段代码放进一个独立的函数当中,并且让函数的名称解释该函数的用途
  • 如果函数的力度足够小,那么他就会达到很大的复用率
  • 即使想要提炼的函数非常非常短,哪怕函数当中只有一句话,但是如果他能达到很高的复用率,并且它的函数命名可以阐述清楚它的作用我们就应该提炼这个函数
  • 提炼函数的过程当中可能会涉及到形参,这个行参有可能是由原函数传递给新的提炼函数的一个变量,也有可能仅仅只存在于新建的函数当中
  1. 那么比较复杂的一定是原函数传递了一个变量给新建的这个函数,并且新建的这个函数对传递过来的形参进行了操作或者赋值
  • 首先要知道java是按值传递的,如果一个值作为形参传入这个函数,我们再对当前的这个数值进行操作,再将当前的数值返回给调用者。其实这个数值在原函数调用者那里是没有变化的,如果我们再次去打印,当前传递进去的那个数值会发现还是未经变化的
  • 这就是java值传递的情况,因为局部变量传递到另一个函数进行赋值操作的时候,两者并不共享同一对象。
  • 所以在切分过长函数,提炼函数的时候,如果涉及到原函数,将会传递给新的提炼出来的函数,一个局部变量,并且新的函数会对局部变量进行赋值操作,那么我们就应该在新的提炼出来的函数当中新建一个临时变量,承接参数局部变量,并对新的职进行操作使人能够看清,JAVA是按值操作的,并不会改变传递过来的这个变量
    以下为新建函数的返回值还会被原函数修改
public int discount(int x){
int var=x;
var-=10return var;
}

以上面这个函数为例,最好不要将临时的复制的这个变量声明为var 最好是声明result
递过来的形参最好声明为init
2. 说到临时变量 虽然是在当前函数内声明的临时变量 比如x=a+b 但是如果该临时变量不止在当前函数用到 在其他函数也用到了 我们就可以使用 查询代替
3.局部变量只能赋值一次 多次赋值就再写新的局部变量
4.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值