热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

问题起源:问题起源,在我写代码中,由于前期思路不清淅,编程较少,代码不断地DEBUG,测试功能,导致写了很多小代码块的方法,最后代码看起来有以下几个特点:1.类方法特

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


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

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

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


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


总结如下:

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


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


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


推荐阅读
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有