码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 继承和实现该如何选择


    平时在我们工作中应该可以看到大量继承和实现的代码,那么此时就有一个问题了,什么时候用继承(extends),什么时候用实现(implements)呢?

    1. 什么时候用到继承?

    如果说项目中有重复的代码块,可以将这些重复的代码块收提取出来放到一个公共类中,让其他的模块继承这个类。例如:

    1. public class EasySqlInjector extends DefaultSqlInjector {
    2. @Override
    3. public List<AbstractMethod> getMethodList(Class mapperClass, TableInfo tableInfo) {
    4. // 注意:此SQL注入器继承了DefaultSqlInjector(默认注入器),调用了DefaultSqlInjector的getMethodList方法,保留了mybatis-plus的自带方法
    5. List<AbstractMethod> methodList = super.getMethodList(mapperClass, tableInfo);
    6. methodList.add(new InsertBatchSomeColumn(i -> i.getFieldFill() != FieldFill.UPDATE));
    7. return methodList;
    8. }
    9. }

    我在用到mybatisplus批量插入的时候构造了一个sql注入器,我让其继承了一个DefaultSqlInjector类,那么这个类就相当于父类,并且用到了父类中getMethodList方法,这个方法就相当于公用的代码,如果还有其他子类想要使用这个方法时只需继承这个类就好。

    所以说:当有重复的代码块时,将其抽取出来放到一个公共类中,使其子类继承这个类即可。

    2 . 什么时候用到实现?

    如果项目中的模块都遵循于一个规范,这个规范每个模块的实现参数都不同,那么可以将这些参数都提取到接口中,其他模块实现此接口定义自己的相关功能即可。例如:

    一个AbstractSqlInjector实现了ISqlInjector这样的一个接口,可以发现接口中定义了一套规则(没有具体的方法体,只有方法和参数),当有其他的类想要用到这套规则时自己实现该接口就好。

  • 相关阅读:
    AlphaLinux配置宽带拨号上网
    Linux环境搭建SVN服务器并实现公网访问 - cpolar端口映射
    Vue2项目练手——通用后台管理项目第四节
    第一章 系统工程概述|系统建模语言SysML实用指南学习
    一个非常简单的变分量子分类器 (VQC)
    leetcode 139. 单词拆分
    java基础题——二维数组的基本应用
    无声的世界,精神科用药并结合临床的一些分析及笔记(七)
    OpUtils局域网唤醒:远程引导计算机
    代码随想录算法训练营第四十八天|121. 买卖股票的最佳时机 122.买卖股票的最佳时机II
  • 原文地址:https://blog.csdn.net/qq_50652600/article/details/126172768
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号