Hirdetés
- Gaming notebook topik
- Fejhallgató erősítő és DAC topik
- OLED monitor topic
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Milyen TV-t vegyek?
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Milyen videókártyát?
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Sony MILC fényképezőgépcsalád
- Milyen billentyűzetet vegyek?
Új hozzászólás Aktív témák
-
Tele von Zsinór
őstag
válasz
Lacces #11264 üzenetére
Ezt a cikksorozatot ajánlom, Fabien Potencier írta, aki például a symfony keretrendszer eredeti szerzője. What is Dependency Injection?
-
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
- Gaming notebook topik
- Samsung Galaxy S25 - végre van kicsi!
- Arc Raiders
- „Új mérce az Android világában” – Kezünkben a Vivo X300 és X300 Pro
- Fejhallgató erősítő és DAC topik
- btz: Internet fejlesztés országosan!
- exHWSW - Értünk mindenhez IS
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Kerékpárosok, bringások ide!
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- További aktív témák...
- Gamer PC-Számítógép! Csere-Beszámítás! I5 10400 / RTX 3060 12GB / 32GB DDR4 / 512GB SSD
- Asztali PC , i7 6700K , RX 5700 XT , 16GB RAM , 480GB SSD
- i5 GAMER PC ÁRON ALUL ELADÓ!
- Új, Gamer félgép - ASRock B760M-HDV/M.2 + Intel I5 13400F + TeamGroup Vulcan 2x16GB DDR5 6000MHz
- Apple Watch SE (2 Gen) 40mm, Normál, Tötlővel, Dobozzal, 1 Év Garanciával!
- Új és újszerű 13-14 Gamer, ultrabook, üzleti, 2in1, X360, Touch készülékek kedvező áron Garanciával
- LG 32UN880P - 32" IPS ERGO / 4K UHD / 60Hz 5ms / DisplayHDR 400 / USB Type-C / AMD FreeSync
- Telefon felvásárlás!! Apple Watch Series 9/Apple Watch Ultra/Apple Watch Ultra 2
- Dell Precision 3571 4G LTE i7-12700H 32GB 1000GB FHD RTX A1000 4GB 1 év teljeskörű garancia
- Telefon felvásárlás!! iPhone X/iPhone Xs/iPhone XR/iPhone Xs Max
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest