Hirdetés
Új hozzászólás Aktív témák
-
Peter Kiss
őstag
válasz
Lacces #11264 üzenetére
A dependency injection-ben semmi sötét mágia nincs, annyiról szól, hogy egyértelműen megmondod, mi kell az adott objektumot létrejöttéhez/működéséhez, vagy épp egy metódus működéséhez ahelyett, hogy valami kiskaput válassz: ez lehet a new operátor (pfuj
) vagy épp az említett singleton vagy singleton-jellegű global object. Constructor-okban lehet sokszor olyat látni, hogy a paraméterlistája tök üres, de van benne vagy 5-ször valamilyen példányosítás new-val vagy mással (ez egyébként amiatt is bukta megoldás, hogy a ctor-okban nem végzünk semmilyen műveletet gyakorlatilag [példányosítás, adatbázishoz kapcsolódás, bármi ilyesmi]).
A container ezen csak annyit segít, hogy ne kelljen annyit írnod, hogy egészen egyszerű legyek. Ha lenne egy olyan osztályod, aminek a ctor-a kérnek másik 3 objektumot, akkor nem szívesen írnál ilyeneket mindenhol, ahol kellene:
new (new (), new (), new ())
A container-ek ezen tudnak segíteni: az adott megoldás leírását használva felépíted, hogy, ha valaki X objektumot kér, akkor annak a függőségeit hogyan oldja fel, és utána csak ennyit kell írnod:
container.GetService(type)
Általában a container-ekhez járnak különböző lifetime service-ek (vagy írhatsz sajátot), ilyennel tudsz singleton-féle működést előidézni.
---
Az a final indoklás nem győzött meg, teljes osztályt szerintem a legritkább esetben kell lezárni. Ha azt szeretnéd, hogy valami az öröklődés ellenére is változatlan maradjon, azt rakd private-re vagy final-re, és kész.
Új hozzászólás Aktív témák
- Medion Akoya P7817- i7-3632QM 2,2 GHz, 8Gb RAM, NVIDIA GeForce GT 730M 2 GB, Intel HD 4000
- Asztali PC R5 3600 RTX 2060 Super 16GB DDR4 512GB NVME
- Készpénzes / Utalásos Videokártya és Hardver felvásárlás! Személyesen vagy Postával!
- Készpénzes / Utalásos Videokártya és Hardver felvásárlás! Személyesen vagy Postával!
- Dell Latitude E6540- i7-4800MQ - 16GB RAM - Intel HD 4600 VGA
- LENOVO Legion Pro 5 16IRX8 - 16" WQXGA 240Hz - i5-13500HX - 16GB - 1TB - RTX 4060 - 9 Hó garancia
- Gombászkönyvek egyben
- Gamer PC-Számítógép! Csere-Beszámítás! I5 12400F / RTX 3070 8GB / 32GB DDR4 / 1TB SSD
- Bowers/Wilkins Px7 S2 fejhallgatók
- Bomba ár! Dell Latitude E7270 - i7-6GEN I 8GB I 256GB SSD I 12,5" HD I HDMI I CAM I W10 I Gari!
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest