回覆列表
  • 1 # 沐璿

    最大的好處,就是去除相依性。假設我們在 A 類別裡 new 一個 B。一、但我們有可能在不同情境下 new 出不同的 B。譬如,一般執行用一般的,測試時用測試用的。二、有時候 new 會帶引數。這個是有可能會變變動的。每次一變動,所有用到 new B 的地方都要改。使用依賴注入,則分成「宣告需求」和「建立實體」,在外部建立實體後,再根據需求注入到適合的地方。

  • 2 # 咻咻的大兔只

    控制反轉,容器IOC這些只能說是一種程式設計思想,理想狀態下實現自動注入,生命週期管理,但實際開發中,我個人感覺有時候真不如new一下方便,主要碰到以下幾個問題:

    1,要寫一大堆配置,要寫建構函式,這麼折騰比new一下麻煩多了,尤其是有些函式整個專案只用到一次而已,本來new一下就完事,但你要用依賴注入,還是要寫配置

    2,當需要注入的類比較多,那建構函式真是跟老太婆的裹腳布一樣又臭又長,關鍵有的類以前用的現在不用了,你還要手動去清理建構函式,比new麻煩多了

    3,也是最關鍵的一點,有時候專案做的複雜了,會碰到迴圈注入的問題,也就是A依賴B,B依賴C,C又依賴A這種情況,碰到這種情況說明存在架構不合理,這時候你要麼重構架構,要麼就不要用依賴注入,直接new一下就能解決

    所以綜上所述,依賴注入只是一種程式設計思想,有一定的先進性,但不是萬能的,它存在的意義是解藕,從宏觀上看,是解決多人共同開發一個專案時能各自模組獨立,相互之間減少依賴和干擾,從微觀上來看,幾個類是緊密聯絡雖然檔案上是獨立的,但功能上是一體的,這時候解藕是毫無意義的,new一下有何不可?

    所以,我個人理解依賴注入就跟一臺發動機一樣,一臺發動機有幾大部件總成組成,這幾大部件相互解藕,用依賴注入實現就可以了,至於單個部件內部各個零件,每個螺絲,你都要用依賴注入去實現,那就有點得不償失了,用new實現方便的多。。。

  • 3 # 依然菜刀

    說幾個比較看得見的好處:1.自己new沒法做切面相關的功能,比如事務,快取註解這些。2.單例3.單例可以帶來全域性配置的效果,比如常見的RedisTemplate類,我可以寫一個自己的類替換它(重寫某個方法實現特殊需求),然後new出來註冊到容器中,然後所有依賴的地方就都生效了,而且可以很方便的切換。

  • 4 # 神氣的小布

    個人理解主要是為了減少堆空間的開闢和釋放,類似於單例模式,一個物件反覆的用,相對於new,減少堆資源佔用,減輕jvm垃圾回收壓力。 試想一下,每次業務請求new一個service和一個service反覆用,哪個處理速度更快,解耦合只是由此帶來的額外福利。

  • 5 # 武漢兩孩他爹

    依賴注入有利於模組化開發,能夠解耦呼叫者和被呼叫者,透過容器管理介面和物件關係、透過介面建立物件實體,軟體擴充功能,升級都很方便。唯一的缺點可能建立物件例項速度次new慢。

  • 6 # Arphalight

    好就好在寫成框架那叫一個爽。springboot如果沒有ioc容器,所有自動配置都無法實現。就沒有這麼好用的框架了。

  • 中秋節和大豐收的關聯?
  • 河道黑臭水體治理與長期改善措施有哪些?