目录
方法为何要有参数?
长参数列表的问题
解决方案
聚沙成塔
动静分离
告别标记
总结
有经验的程序员应该都见过,一个方法坐拥几十上百个参数。
方法为何要有参数?
因为不同方法间需共享信息。
但方法间共享信息的方式不止一种,除了参数列表,还有全局变量。但全局变量总能带来意外惊喜,所以,取消全局变量也是各大语言的趋势。
但方法之间还是要传递信息的,不能用全局变量,于是参数就成了唯一选择,于是,只要你想到有什么信息要传给一个方法,就会直接它加到参数列表中,参数列表也越来越长。
长参数列表的问题
参数列表过长,你一个 crud 程序员就很难完全掌控这些逻辑了呀!
所以症结是数量多,解决关键也就在于降低参数的数量。
解决方案
聚沙成塔
一个简单的创建博客的方法:
参数列表包含了一篇博客所要拥有的各种信息,比如:博客标题、博客简介、封面 URL、博客类型、博客归属的专栏、主角姓名、博客标签、博客是否完结…
如果只是想理解逻辑,或许你还会觉得参数列表挺合理,毕竟它把创建一篇博客所需的各种信息都传给了方法,这也是大部分人面对一段代码时理解问题的最初角度。
虽然这样写代码容易让人理解,但这不足以让你发现问题。
现在产品要求在博客里增加一项信息,标识这部博客是否是签约博客,也就是这部博客是否可收费,咋办?
很简单啊!我直接新增一个参数。很多屎山就这么来的,积少成多,量变引起质变!
这里所有参数都是创建博客所必需的。所以,可以做的就是将这些参数封装成一个类,一个创建博客的参数类:
这样参数列表就只剩下一个参数了:
所以, 将参数列表封装成对象吧 !
只是把一个参数列表封装成一个类,然后,用到这些参数的时候,还需要把它们一个个取出来,这会不会是多此一举呢?就像这样: