service層注入dao失敗 自動注入到底比new好在哪?
自動注入到底比new好在哪?控制反轉(zhuǎn)和容器IOC只能看作是一種編程思想。在理想狀態(tài)下,可以實現(xiàn)自動注射和生命周期管理。但在實際的開發(fā)中,我個人覺得有時不如新的方便,我主要遇到以下問題:1。編寫大量的配
自動注入到底比new好在哪?
控制反轉(zhuǎn)和容器IOC只能看作是一種編程思想。在理想狀態(tài)下,可以實現(xiàn)自動注射和生命周期管理。但在實際的開發(fā)中,我個人覺得有時不如新的方便,我主要遇到以下問題:
1。編寫大量的配置和構(gòu)造函數(shù)要比編寫新的更麻煩,特別是對于某些函數(shù)來說,只需一次。原來,new可以一次性完成,但是如果要使用依賴注入,還需要編寫配置
2。當(dāng)需要注入更多的類時,構(gòu)造函數(shù)就像老婦人的裹尸布一樣臭,一樣長。關(guān)鍵是以前用過的一些類現(xiàn)在不用了,你要手動清理構(gòu)造函數(shù),這比new要麻煩多了
3。這也是最重要的一點,有時候項目很復(fù)雜,會遇到循環(huán)注入的問題。也就是說,A依賴B,B依賴C,C依賴A,這種情況說明架構(gòu)的存在是不合理的。在這一點上,你可以重構(gòu)系統(tǒng),也可以不依賴依賴依賴注入,直接用新的方法來解決它。]因此,依賴注入只是一種編程思想,有一些高級的性質(zhì),但不是。它是萬能的。它存在的意義是脫鉤。從宏觀上講,就是要解決多人共同開發(fā)一個項目時,各自獨(dú)立的模塊,減少相互之間的依賴和干擾。從微觀的角度看,有幾個類是密切相關(guān)的。雖然文件是獨(dú)立的,但是功能是集成的。在這個時候,脫鉤是沒有意義的。為什么不是新的?
因此,我個人理解依賴注入與引擎是一樣的。發(fā)動機(jī)由幾個主要部件組成。這些組件之間是解耦的,可以通過依賴注入來實現(xiàn)。對于單個組件的內(nèi)部部件和螺釘,必須使用依賴注入來實現(xiàn)它們。這比收益多一點。使用new來實現(xiàn)它們要方便得多。。。[挑鼻子][挑鼻子][挑鼻子][挑鼻子][挑鼻子]