做事要反復(fù)確認好幾遍 自動注入到底比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。當需要注入更多的類時,構(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ā)一個項目時,各自獨立的模塊,減少相互之間的依賴和干擾。從微觀的角度看,有幾個類是密切相關(guān)的。雖然文件是獨立的,但是功能是集成的。在這個時候,脫鉤是沒有意義的。為什么不是新的?
因此,我個人理解依賴注入與引擎是一樣的。發(fā)動機由幾個主要部件組成。這些組件之間是解耦的,可以通過依賴注入來實現(xiàn)。對于單個組件的內(nèi)部部件和螺釘,必須使用依賴注入來實現(xiàn)它們。這比收益多一點。使用new來實現(xiàn)它們要方便得多。。。[Pick nose][Pick nose][Pick nose][Pick nose][Pick nose][Pick nose
指C新對象和直接聲明對象之間的區(qū)別,如下所示:
1。必須通過指針接收新對象,并且必須銷毀要顯示的刪除。
2. 效率問題
直接定義更有效。頻繁的調(diào)用域合并不適合于新的調(diào)用域合并,因此總是需要申請內(nèi)存釋放,系統(tǒng)開銷較大。
3. Scope
new中的對象指針可以在方法之間傳遞,并且該對象指針指向的堆中的對象實例仍然存在。直接聲明的對象是本地的,沒有方法。
4. 內(nèi)存分配時間
以普通方式創(chuàng)建的類對象在創(chuàng)建之初就分配了內(nèi)存空間。如果對象沒有初始化類指針,則不需要通過delete釋放它。
c new和直接定義有什么不同?
雖然下面的許多答案往往收效甚微,但如果你只背誦一次,看不出有多大效果,但如果你能背誦,當他們說出最后一句話時,你就可以得到下一句話,效果會有所不同。俗話說,讀一百遍的意義是顯而易見的。有了語感和大量的練習,英語可以很快提高。
我印象中有一個故事(好像在新東方流傳了很久)。一位新東方的學生從高一開始就背誦《新概念英語》,高三時讀完1-3冊,最終以高英語成績進入北京大學。他不想在大學畢業(yè)后背誦。但有一次,當他向同學們背誦新概念時,其他人都羨慕他。為了這個虛榮心,他開始背誦第四卷。
他可以從任何一句話中挑出上一句話或下一句話。后來,他被杜克大學錄取了。教授懷疑他剽竊了他在美國寫的第一篇文章。因為這位教授教了20多年書,從來沒有人寫過這么漂亮的文章。
他說:“我不能證明我能寫這么好的文章,但我告訴你,我能非常熟練地背誦新概念英語。你想聽嗎?”
結(jié)果,教授在背誦完這兩篇文章之前差點哭了。因為這位教授認為自己教書20多年,從來沒有背誦過一篇文章,但中國學生可以背誦新概念。太可惜了
!我不知道這個故事有沒有夸張,但我個人認為經(jīng)典一定有它的優(yōu)點。熟練地背誦經(jīng)典一定會使你受益匪淺。