java 抽象類使用@Autowrited注入對象,子類直接使用父類的該屬性


1.情景展示

  如上圖所示,每個服務層都需要注入這個工具類對象 

   

2.原因分析

  如果我們每個實現類都加上這樣一行代碼,實屬麻煩;

  既然每個類都需要,那我們就可以把它視為公共屬性,為了承載這個公共屬性,我們就需要創建一個父類,在java中,父類通常是一個抽象類。

3.解決方案

  將公有屬性放到父類中,接口實現類作為子類繼承父類。

  這里需要說明的有兩點:

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

  第二,通常我們在一個類中注入對象時,會將該屬性私有化,也就是使用private修飾,這樣一來該屬性會變成類的私有屬性,也就是該屬性只能在該類中被調用;顯然,用到這里不合適,因為我們需要它的子類也能訪問得到該屬性,所以使用protected修飾。

  子類使用繼承該類后,就可以直接使用這個屬性啦

  使用父類的另一個好處是:方便后期擴展公有屬性和方法

4.測試

  對象czUrlUtils能夠正常獲取到。 

5.擴展

  對於幾個個別的接口,僅僅依賴czUrlUtils對象工具類是不夠的,比如還需要另外兩個工具類

  我們可以把這兩個抽出來再作為一個公共類的屬性,將公共類作為父類,父類繼承上面的那個父類

  該實現類繼承新生成的父類。 

   

寫在最后

  哪位大佬如若發現文章存在紕漏之處或需要補充更多內容,歡迎留言!!!

 相關推薦:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM