场景:有些工具类里面出现业务代码,导致工具类不好复用。只能在工具类新建一个类似方法勉强满足业务,但是这个工具类看起来就很low了。

解决:把工具类中的业务代码抽成一个方法,这个方法设置为抽象方法a(abstract修饰该方法),使工具类A为抽象类(abstract修饰该类),新建一个中间类B,继承工具类A,重写抽象方法a(这里放工具类中的原本的业务代码),使用时只需使用中间类B就好了。这样就完全把业务代码从工具类中抽离开来。这样工具类看起来就正常了,而且也十分好扩展,只需新建其他中间类C,继承工具类A,重写抽象方法a,以完成不同需求。

感言:好激动,终于知道怎么搞这种问题了,这个还要十分感谢我们组的高开成哥,是他的工具类让涨姿势啦啦啦。٩(๑>◡<๑)۶

后续:然后查了同类的文章,比如如何编写工具类,方法二中的步骤三似乎也有提到,可能讲的是差不多的事,也许是太简单了,直到今天我才明白抽象在工具类中的用处之大,让人咋舌。

java工具类编写:工具类如何与业务代码完全分开相关推荐

  1. JDBCUtils工具类编写

    什么是JDBC: JDBC全称: java database connection. Jdbc主要用于java代码连接数据库,java代码就可以发送sql语句给数据库服务器,操作数据库中数据. 获取连 ...

  2. 参与知乎 live — 编写优雅的前端业务代码总结

    知乎 live 原地址:编写优雅的前端业务代码 前言 当我们在写业务代码的时候,我们到底在写什么? 其实是对交互的一些处理.所有的交互都是基于用户或者浏览器的一些行为来触发的,比如渲染页面,在页面on ...

  3. Java的日期与时间之如何计算业务代码的运行时间呢?

    转自: Java的日期与时间之如何计算业务代码的运行时间呢? 下文笔者讲述计算运行时间的方法分享,如下所示 实现思路:在业务开始时间和结束时间都加入获取时间的方法然后相减即可得到运行时间 例: lon ...

  4. java dbutils工具类_DbUtils工具类使用

    DbUtils工具类使用 创建数据库 CREATE TABLE `student` ( `userId` int(11) NOT NULL, `userName` varchar(30) NOT NU ...

  5. Springboot——多个pdf文件合并成一个工具类编写

    文章目录 前言 实现 依赖引入 工具类编写 前言 最近接了一个需求,客户觉得一个合同导出多项类型的pdf数据,不够直接明了,需要将多个pdf文件 合并 成一个pdf. 实现 依赖引入 编写工具类之前, ...

  6. Java常用工具类---IP工具类、File文件工具类

    package com.jarvis.base.util; import java.io.IOException; import java.io.InputStreamReader; import j ...

  7. java db类_Java-jdbc-DBUtils工具类介绍

    如果只使用JDBC进行开发,我们会发现冗余代码过多,为了简化JDBC开发,本案例我们讲采用apache commons组件一个成员:DBUtils. DBUtils就是JDBC的简化开发工具包.需要项 ...

  8. 实现一个在JNI中调用Java对象的工具类,从此只需一行代码

    前言 我们知道在jni中执行一个java函数需要调用几行代码才行,如 jclass objClass = (*env).GetObjectClass(obj); jmethodID methodID ...

  9. java cron工具类_Java工具类之:包装类

    我们都知道,JDK 其实给我们提供了很多很多 Java 开发者已经写好的现成的类,他们其实都可以理解成工具类,比如我们常见的集合类,日期相关的类,数学相关的类等等,有了这些工具类,你会发现它能很大程度 ...

最新文章

  1. R语言dplyr包nth、first、last函数获取向量特定值实战
  2. ALV中调用Excel, 丢掉前面的0问题解决
  3. 如何备份桌面文件呢?
  4. python怎么查看列表_Python 小白,关于对于列表的+=操作不明白,查了半天也不知道怎么查,并且查询无果,请人指点?...
  5. HDU多校6 - 6836 Expectation(矩阵树定理+高斯消元求行列式)
  6. (转)UITableViewCell复用问题
  7. python高级属性 用法 编程_python高级编程之面向对象高级编程
  8. load()是python文件操作的函数_python基础总结(函数,文件操作)
  9. python `__slots__`
  10. .NET中异常类(Exception)
  11. [leetcode]5179. 将二叉搜索树变平衡
  12. com app.html,downloadApp.html
  13. 记单词01-vict, vinc(胜利,征服)
  14. redis集群(服务端sharding)
  15. 《OC基础教程》读书笔记3-继承
  16. 密码编码学与网络安全———原理与实践(第八版)第三章笔记
  17. MES系统是如何解决工厂上的难题的?
  18. Linux运维技术之详解任务计划(crontab命令)
  19. Cannot convert string ‘\xAC\xED\x00\x05sr...‘ from binary to utf8mb4
  20. 超级兔子魔法设置 V7.99 正式版

热门文章

  1. mysql存储过程,函数,变量与流程控制
  2. 基于 jsp+servlet+mysql 开发旅游推介网站和后台管理系统(maven项目)
  3. android设计轮播功能按钮,Android TV HorizontalScrollView 图片轮播 遥控器上下按键的处理...
  4. 世界互联网大会,马云、马化腾、库克、李彦宏都说了一件事
  5. Java中常用的API
  6. erp系统的服务器在哪里的,erp系统使用的云服务器
  7. 始祖双碳新闻 | 2022年8月15日碳中和行业早知道
  8. 美国挡不住商汤:仅一周后重启IPO,新增基石投资3.8亿元,年前30号挂牌上市
  9. “长宽高”不设限,中软国际带你在云上“乘风破浪”
  10. 办理一个香港银行帐户,请问有哪些银行可以考虑?