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