当前位置:网站首页>继承和实现该如何选择
继承和实现该如何选择
2022-08-05 18:04:00 【IT盛夏的果实】
平时在我们工作中应该可以看到大量继承和实现的代码,那么此时就有一个问题了,什么时候用继承(extends),什么时候用实现(implements)呢?
1. 什么时候用到继承?
如果说项目中有重复的代码块,可以将这些重复的代码块收提取出来放到一个公共类中,让其他的模块继承这个类。例如:
public class EasySqlInjector extends DefaultSqlInjector {
@Override
public List<AbstractMethod> getMethodList(Class<?> mapperClass, TableInfo tableInfo) {
// 注意:此SQL注入器继承了DefaultSqlInjector(默认注入器),调用了DefaultSqlInjector的getMethodList方法,保留了mybatis-plus的自带方法
List<AbstractMethod> methodList = super.getMethodList(mapperClass, tableInfo);
methodList.add(new InsertBatchSomeColumn(i -> i.getFieldFill() != FieldFill.UPDATE));
return methodList;
}
}我在用到mybatisplus批量插入的时候构造了一个sql注入器,我让其继承了一个DefaultSqlInjector类,那么这个类就相当于父类,并且用到了父类中getMethodList方法,这个方法就相当于公用的代码,如果还有其他子类想要使用这个方法时只需继承这个类就好。

所以说:当有重复的代码块时,将其抽取出来放到一个公共类中,使其子类继承这个类即可。
2 . 什么时候用到实现?
如果项目中的模块都遵循于一个规范,这个规范每个模块的实现参数都不同,那么可以将这些参数都提取到接口中,其他模块实现此接口定义自己的相关功能即可。例如:


一个AbstractSqlInjector实现了ISqlInjector这样的一个接口,可以发现接口中定义了一套规则(没有具体的方法体,只有方法和参数),当有其他的类想要用到这套规则时自己实现该接口就好。
边栏推荐
- How to become a qualified DBA?See what the "old fritters" have to say
- 「学习笔记」矩阵乘法与矩阵快速幂
- RNA甲基化修饰种类
- 使用腾讯云对象存储 COS + PicGo 搭建图床服务
- 优化客户服务的 7 个关键步骤
- I would like to ask, this error is reported when the box is installed, but the database container can be used, what is the reason?1.02 and 1.0
- 一起探秘,不可不知双向链表底层原理
- eKuiper Newsletter 2022-07|v1.6.0:Flow 编排 + 更好用的 SQL,轻松表达业务逻辑
- C语言的文件操作
- 深信服上网行为管理如何配置双因素/双因子(2FA)身份认证
猜你喜欢

LTC6911 采用 MSOP 封装并具数字可编程增益的双匹配放大器

柔红霉素长循环脂质体包载信使RNA(mRNA)|负载RNA的羟基喜树碱包衣纳米脂质体(脂质体核酸供应)

中小企业SEO推广工作该如何有效开展?

齐岳|纳米二氧化硅/四氧化三铁磁性造影粒子(SiO2/Fe3O4)|壳聚糖脂质体包裹超顺磁四氧化三铁纳米粒子
Moyck 的 App 库

Qt样式表之 QSS 语法介绍;QLineEdit、

LeetCode·每日一题·623.在二叉树中增加一行·递归·迭代

Golang 汇编asm语言基础学习

A new generation of host security four big core technologies and 15 application scenario

第十五天实验
随机推荐
齐岳|超顺磁性单层氧化石墨烯/四氧化三铁纳米粒子复合杂化材料载药
葡聚糖偶联超顺磁性纳米Fe3O4造影剂|多肽偶联偶联超顺磁性纳米Fe3O4造影剂
时域同步平均TSA学习笔记
脑间同步:道阻且长
学 Go,最常用的技能是什么?打日志
金仓数据库KingbaseES客户端编程接口指南-DCI(2. 概述)
历史上的今天:第一位图灵奖女性得主;NVIDIA 收购 MediaQ;首届网络安全挑战大赛完成...
氨基修饰四氧化三铁纳米粒子Fe3O4-NH2|四氧化三铁纳米粒子表面修饰聚酰胺胺型树枝高分子(PAMAM)
How to become a qualified DBA?See what the "old fritters" have to say
cas:1190431-95-8|BHQ-1 acid|BHQ-1羧酸|BHQ-1酸|BHQ-1羧基|BHQ-1Black Hole Quencher-1 acid
【Swoole系列3.4】进程间通信
ERMiner: Sequential Rule Mining Using Equivalence Classes
想问一下,安装box的时候报这个错误,但是数据库容器起的都能用,是什么原因造成的啊?1.02和1.0
What are the elements related to the form
FPGA解析B码----连载5
【软考 系统架构设计师】软件架构设计④ 基于架构的软件开发方法
认识一下MRS里的“中间人”Alluxio
全志V853芯片 在Tina下RISC-V核E907启动方式的选择
ORACLE ORA-01653: unable to extend table错误如何处理
对话窗口、面板滚动视图、标签切换视图;QDialog、QScroollArea、