时间:2021-05-26
思维导图
介绍
前几篇系列文章,我比较关注的是<PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数>,但是我觉得我还是没有说清楚,我自己也有很多不理解的地方,而且这篇是我的第一篇这方面的文章,有很多的纰漏,所以我会经常性的去做修改,如果大家有好的意见不妨告知一、二。
今天谈得是“接口”,此接口非“Interface”,而是一个统称。我们一般可以把供别人使用的函数或者url(一般是用于提供数据)叫接口。——可能还有别的意思,毕竟我现在还属于“菜鸟”,如果有理解上的错误,请指正。
我们知道“容易被理解和被使用的接口”,是开发良好面向对象软件的关键。——本文将介绍“使接口变得更简洁易用”的重构手法。
题外话:
如果大家觉得我这篇文章太长,看起来麻烦的话,建议大家”就看图片和粗体的文字“。
昨天,“old“博友给我留言,我以前也没仔细考虑过,这次我也想了想。留言内容是:
我个人觉得,很多事情只有我们去关注过,才能知道它的价值。
至于简单,重构的目地也是为了简单和易理解性。
至于执着,我觉得在技术上,我们很多时候需要这种执着,即使你过后觉得你错了,但是我们在这之间还是会有所收获。我们只有经历过很多次的磨合(这种磨合有正确的也有错误的),我们才能知道它的价值,我们才能收获到我们需要的东西。
至于利益,”Old“是不是指公司利益,恩,确实是,很多时候我们在编码的过程中,需要赶进度,还有我们在重构中也会有一些错误出来,所以我的建议是,在开发之初,你就要在设计和重构中,不断进行磨合,不要觉得浪费时间,很多时候,好的结构能加速你的开发。
专业术语
Rename Method
Example:
Parameterize Method状况:如果若干函数做了类似的工作,但在函数本体中包含了不同的值,那么建立单一函数,以参数表达那些不同的值。动机: 1、一般是因为有少数几个值不同,所以建立了几个相似的函数。 2、分离的函数替换为一个统一的函数,通过参数来处理那些变化情况,以简化问题。 3、去除重复的代码,提高灵活性。——可以使用这个参数处理其他变化情况。Example:Replace Parameter with Explicit Methods状况:你有一个函数,其内完全取决于参数值而采取不同的反应,那么针对该参数的每个值,建立一个独立的函数。动机: 1、如果某个参数有离散值,而函数内又以条件式检查这些参数值,并根据不同的参数值做出不同的反应,那么就应该使用本次重构。 2、可以获得好处:“编译期代码检查”,“接口更清楚”(如果用参数值决定函数行为,那么函数用户不但需要观察该函数,而且还要判断参数是否“合法化”。——而合法的参数,很少在文档中提到,必须通过上下文,才能判断) 3、不考虑“编译期检验”的好处,为了获取一个清晰的接口,我们也值得这么做。Example:Preserve Whole Object状况:如果你从某个对象中取出若干值,将它们作为某一次函数调用中的参数,那么改使用(传递)整个对象。动机: 1、参数列更稳固; 2、提高代码的可读性;——过长的参数列很难使用,因为调用者和被调用者都必须记住这些参数的用途。Example:Replace Parameter with Methods状况:如果对象调用某个函数,并将所得结果做为参数,传递给另一个函数(接受参数的函数也有调用前一个函数的能力),那么让参数接受者去除该项参数,并直接调用前一个函数。动机: 1、如果函数通过其他途径获得参数值,那么它就不应该通过参数取得该值。 2、过长的参数列会增加程序阅读者的理解难度,因此我们应该尽可能的缩短参数列的长度。 3、方法:看看“参数接受端”是否可以通过“与调用端相同的计算”来取得参数携带值。 4、如果函数调用端通过对象内部的另一个函数来计算参数,并在计算过程中“未曾引用调用端的其他参数”,那么就可以将这个计算过程转移到被调用端内,从而去除该项参数。Example:Introduce Parameter Object状况:某些参数总是很自然地同时出现,那么以一个对象取代这些参数。动机:接着来:
Replace Error Code with Exception状况:如果某个函数返回一个特定的代码(special code),用以表示某种错误情况,那么改用异常(Exception)。动机: 清楚的将”普通程序“和”错误处理“分开,这使的程序更容易”理解“。Example:conclusion把我每一次的收获与大家分享,如果大家有那么一丁点的收获,也让我高兴不已。还有如在文章中有错误,望请指点一、二。我不知道是不是找错地方了,有博友留言说“博客园里主要盛行C#”,看得人是不是主要以PHP程序员为主?还有很少有人给我留言,也很少有人指出我文章中的错误(难道我的文章中真的没有错误吗?),昨天”@四眼蒙面侠“给我留了言,我在与他的交谈中收获甚多,也感谢的他的批评指正,也希望能跟大家多交流。声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
思维导图介绍承接上文的PHP杂谈《重构-改善既有代码的设计》之重新组织你的函数继续重构方面的内容。这章主要针对数据的重构。1、争论的声音——直接访问Field还
复制代码代码如下:使用方法,将其建立一个php文件入yzm.php,调用将参数调用到本函数中即可。
有关php递归函数的用法,分享几个php递归函数的例子,在php编程中,使用递归进行函数调用很常见,递归函数用的好,可以提高代码效率,通过例子学习php递归函数
前言python调用php代码实现思路:php文件可通过在terminal中使用php命令行进行调用,因此可使用python开启子进程执行命令行代码。函数所需的
前言本文主要给大家介绍关于PHP-X内置函数的使用,在PHP扩展开发中,会经常用到这些内置函数,PHP-X的封装,使得调用这些函数像PHP代码一样简单。对php