PHP杂谈《重构-改善既有代码的设计》之五简化函数调用_PHP
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP杂谈《重构-改善既有代码的设计》之五简化函数调用_PHP,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含6671字,纯文字阅读大概需要10分钟。
内容图文
![PHP杂谈《重构-改善既有代码的设计》之五简化函数调用_PHP](/upload/InfoBanner/zyjiaocheng/251/e90a0c8187a4488b9387106f5c7e2743.jpg)
介绍
前几篇系列文章,我比较关注的是
今天谈得是“接口”,此接口非“Interface”,而是一个统称。我们一般可以把供别人使用的函数或者url(一般是用于提供数据)叫接口。——可能还有别的意思,毕竟我现在还属于“菜鸟”,如果有理解上的错误,请指正。
我们知道“容易被理解和被使用的接口”,是开发良好面向对象软件的关键。——本文将介绍“使接口变得更简洁易用”的重构手法。
题外话:
如果大家觉得我这篇文章太长,看起来麻烦的话,建议大家”就看图片和粗体的文字“。
昨天,“old“博友给我留言,我以前也没仔细考虑过,这次我也想了想。留言内容是:
至于简单,重构的目地也是为了简单和易理解性。
至于执着,我觉得在技术上,我们很多时候需要这种执着,即使你过后觉得你错了,但是我们在这之间还是会有所收获。我们只有经历过很多次的磨合(这种磨合有正确的也有错误的),我们才能知道它的价值,我们才能收获到我们需要的东西。
至于利益,”Old“是不是指公司利益,恩,确实是,很多时候我们在编码的过程中,需要赶进度,还有我们在重构中也会有一些错误出来,所以我的建议是,在开发之初,你就要在设计和重构中,不断进行磨合,不要觉得浪费时间,很多时候,好的结构能加速你的开发。
专业术语
状况:如果函数的名称未能揭示函数的用途,那么修改函数名称。
我极力提倡的一种编程风格就是将复杂的处理过程分解成小函数。但是如果小函数的命名不好,这会使你费劲周折却弄不清楚这些小函数各自的用途。
给函数命名的一个好办法:考虑应该给这个函数写上一句怎样的注释 -——> 想办法将注释变成函数的名称。
起一个好名称并不容易,需要经验。——要想成为一个真正的编程高手,“起名称”的水平至关重要。
如果你看到一个函数名称不能很好的表达它的用途,应该马上加以修改。
Example:
状况:某个函数需要从调用端得到更多的信息,那么为此函数添加一个参数,让该参数带进函数所需信息。
动机:
1、Add Parameter 是一个很常用的重构手法。
2、修改过的函数需要一些过去没有的信息,因此你需要给函数添加一个参数。
3、除了Add Parameter外,只要有可能,其他选择都比“Add Parameter”要好,因为有可能其他选择不会增加参数列的长度。——过长的参数列会使程序员记不住那么多参数。
状况:函数本体不再需要某个参数,那么将该参数去除。
动机:
1、参数指出函数信息,不同参数代表不同意义。函数调用这必须为每一个参数操心该传什么东西进去。——如果不去掉参数,那就为每一次调用多费一份心。
2、如果你发现有很多调用者,那么为了不让调用者操心,你可以这样做,把要移除的参数设置为某个默认值(如null),这样调用者只传那些没有默认值的参数。
Example:
Example:
Preserve Whole Object 状况:如果你从某个对象中取出若干值,将它们作为某一次函数调用中的参数,那么改使用(传递)整个对象。 动机: 1、参数列更稳固; 2、提高代码的可读性;——过长的参数列很难使用,因为调用者和被调用者都必须记住这些参数的用途。
1、一组参数可能有几个函数同时使用,这些函数可能隶属于同一个class,也可能隶属于不同的classes。——这样的一组参数就是所谓的Data Clump(数据泥团)。 2、我们可以运用一个对象包装所有这些数据,再以对象取代Data Clump。——目地:哪怕只是为了把这些数据组织在一起,这样做也是值得的。 3、本项重构的价值在于“缩短了参数列的长度”。此外,新对象所定义的访问函数(accessors)还可以使代码更具一致性。——这又进一步降低了代码的理解难度和修改难度。 4、本项重构还可以带给你更多好处。——当你把这些参数组织到一起之后,往往很快可以发现“可被移植新建class“的行为。——减少重复代码。 Example:
1、重构往往促使你修改“函数的可见度“。——时刻检查可被隐藏的函数。 2、经常检查有没有可能降低某个函数的可见度(使它私有化)。 ——>当你在另一个class中移除对某个函数的调用时,就应该检查。 ——>特别对setter函数进行上述的检查。 Replace Constructor with Factory Method 状况:如果你希望在创建对象时不仅仅是对它做简单的构件动作,那么将__construct(构造函数)替换为factory method。
动机:
在subclass过程中以factory method取代type code。——你可能常常需要type code创建相应的对象。
Example:
接着来:
内容总结
以上是互联网集市为您收集整理的PHP杂谈《重构-改善既有代码的设计》之五简化函数调用_PHP全部内容,希望文章能够帮你解决PHP杂谈《重构-改善既有代码的设计》之五简化函数调用_PHP所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。