变量是作为参数还是作为类属性(变量)

问题起源: 问题起源, 在我写代码中, 由于前期思路不清淅, 编程较少, 代码不断地DEBUG, 测试功能, 导致写了很多小代码块的方法,最后代码看起来有以下几个特点:
1. 类方法特别多, 有许多方法是为了帮助确定代码正确, 帮助调试,将一个一个方法变成了方法链, 最后多个方法组成一个方法。
2. 许多方法, 使用的同一个变量, 都采用的传参的方式,方法signature特别臃肿。
3. 类代码特别长。
总结起来就是:代码看起来尤其不干净。


最后,在程序完成的时候,为了将效率,代码整洁,封装,必须重构代码,就有了以下几个问题:
1. 重复用了几次的方法,首先从每一个使用它的方法中分离出去是有必要的,但是是否将这些放在这个类里却是一个问题。
2. 重复使用的变量是作为类属性呢?还是作为参数传参?

回答上面的问题,本人代码能力还十分欠缺,此时这个博客更多是将这个问题放在这里。

不过, 回答以上问题, 角度是一定的, 效率和代码整洁, 以及一些你采用的变量的问量, 比如如果你的类变量, 类似于Sockets这样的变量, 那么他与像int这样的变量是否有区别呢?


本人暂时有几方面觉得是对的:引用于讨论问答
1. 设计类属性是第一的, 那么这个参数如果是类属性, 方法就应该调用类属性,将它放在外面。 如果采用参数, 那么你必须有相应的理由。就可扩展性来说, 最可怕就是为了方便, 修改代码, 最后会导致你的代码很快膨胀, 和重复。
2. 将变量作为参数是有好处的, 比如能更快地从method’signature中知道方法的功能。其次作为参数能更好地避免变量在其它地方被修改, 导致异常。另外, 它在代码测试中有极大地帮助, 这也是我的代码变得臃肿的原因。
3. 这个问题不是在所有项目中是通用的概念。


总结如下:

作为参数变量:
1. 能更好地测试代码
2. 可能无副作用
3. 能帮助更好地理解代码


作为成员变量:
1. 能更好地封装
2. 代码看起来更整洁,
3. 调用类时, 更方便地调用方法


这个问题的平衡好像与一个问题有关, 在维基上有anti-pattern. 关于此篇下次补充。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值