本文主要是介绍方法的度和幽灵方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
发发神经
在研究Solr源码发现它用到了Apache的commons io包,回想以前在各种场合见过这位“侠客”留下的痕迹,犹如挥之不去的魅影,决心花一天时间好好拜访一下commons io!!正当我撸起了袖子,信心满满,蓄势待发,果然单FileUtils就给了我一个闭门羹……
在研究源码时,类图、时序图能起到很好的辅助作用,而且借助Eclipse调试、链接功能,可以省下很多力气。但是面对粒度更细的方法层,我并没找到很好的解决方案。有时候单一个类中的方法,就有各种跳转调用,我们也被牵着鼻子在Eclipse中跳来跳去。以FileUtils类为例,它是一个工具方法集合共93个方法。里面含有大量的同名或者至少长得可以让你眼花的兄弟方法。下面举一些例子。
copyDirectory | 4 |
copyFile | 3 |
iterateFiles | 2 |
listFiles | 2 |
write | 6 |
writeLines | 7 |
writeStringToFile | 6 |
但其实,一归纳就会发现,很多重载方法归根结底就是一个方法,只不过为了调用的方便,或是省去某个参数代以默认值,或是加了一层包装。有时候需要忽略重载细节,抓住问题的本质,当你再一次看到某个重载方法时,你头脑就会反应“嗯,它其实最后调用的是这个方法”。所以我按照自己的想法,给出了一个阅读源码方法层的解决方案。
方法的度
①指1度方法,②指二度方法。度越小,这个方法越“本质”。而⓪度方法通常表示非装饰的内部方法。
+ listFiles(File, IOFileFilter, IOFileFilter) ①
+ listFiles(File, S
这篇关于方法的度和幽灵方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!