工具类是编程过程中最常用的类,除功能性外它主要实现代码复用,这一方面极大降低使用门槛,另一方面通过收敛提高规范性和通用性,进而提高可扩展性和可维护性,从而大幅提升开发效率。
以往当我们需要一个工具类或工具类方法时,大部分时候搜到的都是低质量的碎片化的代码,这些代码如果不加任何控制地被随意引入到工程里,慢慢就会变成屎山代码,轻则影响代码的可阅读性和美感,重则造成不可预计的Bug并极大影响可维护性。
所以这要求我们在添加工具类和方法时必须放眼全局和未来,慎之又慎。
可扩展性:系统为了应对需求的变化而提供的一种应变能力,一般针对新功能。
可维护性:纠正系统错误或缺陷和进行系统优化或升级的难易程度,一般针对已有功能。
根据工具类的特征,将其分为以下两类:
我理解的好的框架工具类应该具备以下特征:
我理解的好的工具类应用是这样的:
Hutool是一个小而全的JAVA工具类库,通过静态方法封装,降低相关API的学习成本,提高效率。
PS:个人使用习惯是需要什么工具类,直接在IDE中联想,然后查看源码的实现是否匹配。
总结:工具类本身并不难,但每一个工具类的作者都应该时刻记着工具类是开放给所有人的,所以在命名、规范性、完备性(除了功能点还有功能面)、适应性(使用上尽量不要有依赖和限制)、易用性、扩展性、维护性、兼容性等方面必须多加思考,做到不丢人和不怕丢人。