• java 抽象类使用@Autowrited注入对象,子类直接使用父类的该属性


    1.情景展示

      如上图所示,每个服务层都需要注入这个工具类对象 

       

    2.原因分析

      如果我们每个实现类都加上这样一行代码,实属麻烦;

      既然每个类都需要,那我们就可以把它视为公共属性,为了承载这个公共属性,我们就需要创建一个父类,在java中,父类通常是一个抽象类。

    3.解决方案

      将公有属性放到父类中,接口实现类作为子类继承父类。

      这里需要说明的有两点:

      第一,抽象类也可以使用spring注解完成对象的注入;

      第二,通常我们在一个类中注入对象时,会将该属性私有化,也就是使用private修饰,这样一来该属性会变成类的私有属性,也就是该属性只能在该类中被调用;显然,用到这里不合适,因为我们需要它的子类也能访问得到该属性,所以使用protected修饰。

      子类使用继承该类后,就可以直接使用这个属性啦

      使用父类的另一个好处是:方便后期扩展公有属性和方法

    4.测试

      对象czUrlUtils能够正常获取到。 

    5.扩展

      对于几个个别的接口,仅仅依赖czUrlUtils对象工具类是不够的,比如还需要另外两个工具类

      我们可以把这两个抽出来再作为一个公共类的属性,将公共类作为父类,父类继承上面的那个父类

      该实现类继承新生成的父类。 

       

    写在最后

      哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

     相关推荐:

  • 相关阅读:
    Android px,dp,pt,sp的差别
    C 八皇后
    线性表
    android 推断手机是否支持前置摄像头
    C/C++易错难点笔记01
    Java日志记录的5条规则
    hdoj-1312-Red and Black
    oracle 11g sql developer安装后无法使用
    显示指定时间的秒数
    云端自动化测试方案
  • 原文地址:https://www.cnblogs.com/Marydon20170307/p/13952640.html
Copyright © 2020-2023  润新知