当前位置: 首页 > news >正文

[Java]合理封装第三方工具包(附视频)

-1.视频链接

视频版: 视频版会对本文章内容进行详细解释

[Java]合理封装第三方工具包_哔哩哔哩_bilibili

 

0.核心思想

对第三方工具方法进行封装,使其本地化,降低记忆和使用成本

1.背景

在我们的项目中,通常会引用一些第三方工具包,或者是使用jdk自带的一些工具类

例如:

commons-lang3 apache开源工具类库

fastjson 阿里开源操作Json的工具类库

Objects  JDK自带的object对象工具类

File JDK自带的file文件处理类

hutool-all  国内优秀简洁的开源类库

<dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId>
</dependency>
<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId>
</dependency>
<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId>
</dependency>

但是这些工具类库有一个很不好的点,就是需要学习成本,需要记住各种Api方法的名称

比如:

String.valueOf()   LocalDateTime.parse()  Json.from()  CollUtil.isEmpty() ....

因此我们需要合理的对这些第三方进行本地化

比如封装fastJson为JsonHelper 

比如封装File为FileHelper

比如封装Objects为ObjectHelper

2.封装思想

1.统一风格的方法命名

比如转换数据类型的方法 全部是叫:"to" 

2.工具方法的归属

有2种分类方式

第一种分类方式就是根据对象来分类  比如我们想要对String相关的工具方法本地化封装 那么应该把这些封装好的方法 归属到StringHelper中

第二种分类方式是根据行为来分类 比如我们想要封装所有check类型的方法 比如isBlank  isEmpty()  isNotNull()这种方法  那么我们就要单独定义一个CheckHelper类来存储这些方法

3.为什么叫helper而不是叫utils 

因为utils是独立的一个工具类,而helper代表是一整个相关体系,它的后续扩展性更好,比如FileHelper,会搭配更多的file类 比如FileType MyFileSql

http://www.lryc.cn/news/510015.html

相关文章:

  • 常规配置、整合IDEA
  • 用Python写炸金花游戏
  • 计算机的错误计算(一百九十二)
  • 37 Opencv SIFT 特征检测
  • Nginx界的天花板-Oracle 中间件OHS 11g服务器环境搭建
  • 域名解析协议
  • 微信小程序给外面的view设置display:flex;后为什么无法给里面的view设置宽度
  • Maven怎么会出现一个dependency-reduced-pom.xml的文件
  • 突发!!!GitLab停止为中国大陆、港澳地区提供服务,60天内需迁移账号否则将被删除
  • 自学记录HarmonyOS Next DRM API 13:构建安全的数字内容保护系统
  • Vue 3 + Element Plus 实现文件上传组件:详细解析与实现指南
  • qt5.12.11+msvc编译器编译qoci驱动
  • Ubuntu 20.04 安装 LNMP
  • Llama 3 简介(一)
  • 在 CentOS 上安装 FFmpeg
  • Python------Pandas的数据结构
  • 矩阵碰一碰发视频源码技术解析,支持OEM
  • 【汇编语言】外中断(一)—— 外中断的魔法:PC机键盘如何触发计算机响应
  • pymssql-2.1.4.dev5-cp37-cp37m-win_amd64.whl 安装
  • 在HTML中使用Vue如何使用嵌套循环把集合中的对象集合中的对象元素取出来(我的意思是集合中还有一个集合那种)
  • Apriori关联规则算法 HNUST【数据分析技术】(2025)
  • Windows中Microsoft Edge兼容性问题|修复方案
  • Android 蓝牙开发-传输数据
  • webrtc获取IceCandidate流程
  • 每天40分玩转Django:Django静态文件
  • Linux 线程池
  • windows使用zip包安装MySQL
  • 深度学习实战之超分辨率算法(tensorflow)——ESPCN
  • Android unitTest 单元测试用例编写(初始)
  • C++简明教程(10)(初识类)