今天就跟大家聊聊有关如何编写一个Java 工具类,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
今天我也以如何编写一个 Java 工具类为话题,给大家规范一下工具类如何编写
最近我在做 code review 时,发现了一些开发人员在编写工具类时的小问题,所以在这里我简单的讲一下我的个人理解。
首先说明一下,这个工具类的规范不是我定义的,而是我参考众多知名开源框架发现的。
先说第一种情况,如果工具类中的方法全部时静态方法,那么可以将工具类作为一个 abstract 抽象类。Spring 框架中存在大量的这样的使用。
然后,如果工具类中有异常,请抛出,不要自己去 try-catch。更不要 try 了之后 e.printStackTrace() 。
还有就是工具类中要不要打印日志问题,尽量不要打印,像 log4j 这样的一些第三方日志框架也不要用。降低于第三方类库的依赖。
还有一情况是,工具类中的方法非 static 的。那你可以将工具类定义为 final class,考虑到工具类应该不能被继承。在私有化它的构造函数,提供一个单例。
工具类的命名应该用 Util 结尾,例如 LogUtil。
像下面这种工具类,就千万要注意了。
至于工具类中的方法应该设计为静态的还是非静态的,这个没有统一的标准。各有各的好,参加大多数开源框架,static 的多一些。
工具类的设计,推荐大家多看看 Guava、Apache Commons。
像大名鼎鼎的 Hutool,它提到了工具类的 6 大设计思想。方法优先于对象、自动识别优于用户定义、便捷性与灵活性并存、适配与兼容、可选依赖原则、无侵入原则。
Hutool 中的工具类,既没有采用抽象类 abstract class 有没有采用 final class。所以我更喜欢 Spring、Guava、Apache Commons等框架的源码。
看完上述内容,你们对如何编写一个Java 工具类有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。