Hirdetés
- Luck Dragon: Asszociációs játék. :)
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- GoodSpeed: Márkaváltás sok-sok év után
- Szevam: ChatGPT: Bizonytalansági jelölés funkció bekapcsolása
- Fogkefe: elektromos vagy manuális?
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- eBay-es kütyük kis pénzért
- bambano: Bambanő háza tája
- Autódiagnosztika: a gyakorlatban
Ú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
- Milyen monitort vegyek?
- Samsung Galaxy Watch8 - Classic - Ultra 2025
- Formula-1
- Luck Dragon: Asszociációs játék. :)
- Napelem
- Battlefield 6
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- Google Pixel topik
- Gyúrósok ide!
- Call of Duty: Black Ops 7
- További aktív témák...
- HP EliteDisplay E233 23"FHD Üzleti Monitor, 2xUSB , Álló/Fekvő mód, emelhető, használt, üzletből
- HP EliteDisplay E243 23.8"FHD Üzleti Monitor, 2xUSB , Álló/Fekvő mód, emelhető, használt, üzletből
- Unifi Ubiquity ER-4 Router + Unifi UCK G2 + 2db SFP Modul eladó
- HP Elite X2 G8 Tablet 13" Touch i5-1145G7/16GB/512GB NVME 3000x2000
- HP EliteDesk 800 35W G2 USDT i5-6500T/8GB/256GB/Win11Pro
- HIBÁTLAN iPhone 15 Pro Max 256GB Natural Titanium -1 ÉV GARANCIA -Kártyafüggetlen, 100% Akkumulátor
- Microsoft Surface Laptop 4 13.5" i7-1185G7 16GB 512GB 1 év garancia
- ÁRGARANCIA!Épített KomPhone i7 14700KF 32/64GB RAM RX 9070 XT 16GB GAMER PC termékbeszámítással
- ÁRGARANCIA!Épített KomPhone Ryzen 7 5700X 16/32/64GB RAM RTX 3060 12GB GAMER PC termékbeszámítással
- LG 55C4 - 48" OLED evo - 4K 144Hz - 0.1ms - NVIDIA G-Sync - FreeSync - HDMI 2.1 - A9 Gen7 CPU
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
) 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]).
