当前位置: 首页 > 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.mrgr.cn/news/81029.html

相关文章:

  • yolov5 yolov6 yolov7 yolov8 yolov9目标检测、目标分类 目标切割 性能对比
  • Redis生产实践中相关疑问记录
  • 概率论得学习和整理32: 用EXCEL描述正态分布,用δ求累计概率,以及已知概率求X的区间
  • Bootstrap 5 图像形状
  • Kubeadm+Containerd部署k8s(v1.28.2)集群(非高可用版)
  • oscp备战系列-Kioptrix-level4
  • 数据仓库工具箱—读书笔记02(Kimball维度建模技术概述03、维度表技术基础)
  • 海格通信嵌入式面试题及参考答案
  • draw.io 导出svg图片插入word后模糊(不清晰 )的解决办法
  • Restaurants WebAPI(四)——Identity
  • nodejs利用子进程child_process执行命令及child.stdout输出数据
  • LLMs之rStar:《Mutual Reasoning Makes Smaller LLMs Stronger Problem-Solvers》翻译与解读
  • 开源知识库open source knowledge base
  • 计算机毕业设计hadoop+spark知网文献论文推荐系统 知识图谱 知网爬虫 知网数据分析 知网大数据 知网可视化 预测系统 大数据毕业设计 机器学习
  • 5G -- 网络安全
  • 【测试】APP测试
  • Go by Example学习
  • LeetCode 刷题笔记
  • qemu源码解析【06】qemu启动初始化流程
  • Ubuntu 22.04,Rime / luna_pinyin.schema 输入法:外挂词库,自定义词库 (****) OK
  • Docker 入门:如何使用 Docker 容器化 AI 项目(一)
  • ubuntu 安装更新 ollama新版本
  • CAD xy坐标标注(跟随鼠标位置实时移动)——C#插件实现
  • 备忘一个FDBatchMove数据转存的问题
  • 分析excel硕士序列数据提示词——包含对特征的筛选,非0值的过滤
  • Halcon单相机+机器人=眼在手上#标定心得