读源码Apache-commons-lang3-3.1(零)-阿里云开发者社区

开发者社区> 技术小阿哥> 正文

读源码Apache-commons-lang3-3.1(零)

简介:
+关注继续查看

  Commons基础类包基本上是基于JDK API开发而来,依赖微小,可重用性是Jakarta commons的灵魂所在。

  Lang组件主要是一些工具类,涉及到数组工具类,字符串工具类,字符工具类,数学方面,时间日期工具类,异常,事件等工具类。

  阅读Apache-Commons-Lang包下常用的数组,字符串,字符工具类的实现,能在实际开发中避免过多的写相关字符串处理,数组处理的通用方法。很多时候,已经重复做了好多本不需要做的工作,在一个项目中字符串,数组的处理是相当频繁的。


  得益于亲身体会,截取字符串,替换字符串,字符串字符排序,查找各式各样的操作,每次到要针对一个问题去处理,反反复复编写着相似的代码,一直有些反感,这一点我们并没有采用拿来主义,我也看到好多项目中有一些成为utils或者tools的子包,里面放置这一些字符串处理,数据格式转换等工具类,事实上,这些工作已经有人做了,而且做很很好的封装,组织。

  Lang组件中的工具类的方法是静态方法,直接使用,命名清晰明了,能够很好的解决问题。有时候,拿来主义是必须了,Lang包下的工具类实现并非有什么高超的编码技巧,实现方式,其有效的组织和归纳一些列工具类型的方法,具备高可重用性是其价值的体现。


  通过阅读Commons-Lang下的几个常用,频繁涉及的工具类,总结一点就是工具类的组织,归纳,公共特性是其核心价值。

 

 下面是四篇关于Commons-Lang下几个工具类的说明:

   CharUtils CharSequenceUtils:

   http://aiilive.blog.51cto.com/1925756/1282066

   ObjectUtils Range:

   http://aiilive.blog.51cto.com/1925756/1282061

   ArrayUtils :

   http://aiilive.blog.51cto.com/1925756/1282062

   StringUtils, RandomStringUtils:

   http://aiilive.blog.51cto.com/blog/1925756/1282146


   一次尝试阅读开源组件的源代码,感受其组织代码,归纳特性,实现方法的原理,能够宏观的看公共类设计的方法,方式。另外,熟悉开源组件代码,能够将其投入到实际的工作,从而提高的生产效率,减轻编码负担。这将是软件可重新为我带来的一个切身可以享受到的好处。




本文转自 secondriver 51CTO博客,原文链接:http://blog.51cto.com/aiilive/1282155,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
k8s与网络--Flannel源码分析
之前在k8s与网络--Flannel解读一文中,我们主要讲了Flannel整体的工作原理。今天主要针对Flannel v0.10.0版本进行源码分析。首先需要理解三个比较重要的概念: 网络(Network):整个集群中分配给 flannel 要管理的网络地址范围 子网(Subnet):flanne.
1636 0
hbase源码系列(十四)Compact和Split
本文介绍hbase中的Compact和Split。
3480 0
1月28日云栖精选夜读 | 终于等到你!阿里正式向 Apache Flink 贡献 Blink 源码
如同我们去年12月在 Flink Forward China 峰会所约,阿里巴巴内部 Flink 版本 Blink 将于 2019 年 1 月底正式开源。今天,我们终于等到了这一刻。
3920 0
怎么设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程
8425 0
Apache Spark Delta Lake 事务日志实现源码分析
Apache Spark Delta Lake 事务日志实现源码分析 我们已经在这篇文章详细介绍了 Apache Spark Delta Lake 的事务日志是什么、主要用途以及如何工作的。那篇文章已经可以很好地给大家介绍 Delta Lake 的内部工作原理,原子性保证,本文为了学习的目的,带领大家从源码级别来看看 Delta Lake 事务日志的实现。
1609 0
android(cm11)状态栏源码分析(一)
版权声明:您好,转载请留下本人博客的地址,谢谢 https://blog.csdn.net/hongbochen1223/article/details/50216563 (一):写在前面 最近由于工作需要,需要了解CM11中的有关于StatusBar相关的内容。
950 0
Java网络编程与NIO详解11:Tomcat中的Connector源码分析(NIO)
Tomcat 中的 NIO 源码分析 转自https://www.javadoop.com/post/tomcat-nio#toc1 之前写了两篇关于 NIO 的文章,第一篇介绍了 NIO 的 Channel、Buffer、Selector 使用,第二篇介绍了非阻塞 IO 和异步 IO,并展示了简单的用例。
1708 0
jquery源码系列:append方法实现过程
no1: // Define a local copy of jQuery var jQuery = function( selector, context ) {// The jQuery object is actually just the init constructor 'enhanced'return new jQuery.fn.init( selector, contex
1756 0
13694
文章
0
问答
文章排行榜
最热
最新