zoukankan      html  css  js  c++  java
  • java 抽象类使用@Autowrited注入对象,子类直接使用父类的该属性

    1.情景展示

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

       

    2.原因分析

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

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

    3.解决方案

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

      这里需要说明的有两点:

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

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

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

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

    4.测试

      对象czUrlUtils能够正常获取到。 

    5.扩展

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

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

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

       

    写在最后

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

     相关推荐:

  • 相关阅读:
    038 Count and Say 数数并说
    037 Sudoku Solver 解数独
    036 Valid Sudoku 有效的数独
    035 Search Insert Position 搜索插入位置
    bzoj1202 [HNOI2005]狡猾的商人
    USACO45 lights 电灯(折半搜索)
    USACO44 TimeTravel 时间旅行(链表)
    USACO35 翻转奶牛(尺取法)
    bzoj1833: [ZJOI2010]count 数字计数&&USACO37 Cow Queueing 数数的梦(数位DP)
    USACO26 moofest 奶牛集会(归并排序)
  • 原文地址:https://www.cnblogs.com/Marydon20170307/p/13952640.html
Copyright © 2011-2022 走看看