Ú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
- Arc Raiders
- Autós topik látogatók beszélgetős, offolós topikja
- Motorolaj, hajtóműolaj, hűtőfolyadék, adalékok és szűrők topikja
- Kicsi, USB-C, több protokollt támogató Xiaomi töltő jelent meg
- Poco F7 – bajnokesélyes
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Milyen videókártyát?
- BMW topik
- További aktív témák...
- Sigma 12-24mm f/4.5-5.6 EX DG HSM
- Eladó 4GB DDR4 laptop RAM-ok (SO-DIMM) többféle órajellel ( 10 darab )
- OHH! MSI CYBORG 15 Gamer Tervező Laptop 15,6" -30% i7-13620H 10Mag 16/512 RTX 4060 8GB FHD 144Hz
- ELADÓ 4 darab 8GB DDR4 ECC Registered (RDIMM) Szerver RAM modul
- Építőipari csomag (vakológépek, targoncák, építőipari eszközök és kellékek, egyéb, sok más)
- GYÖNYÖRŰ iPhone 13 mini 128GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS3060
- Keresünk iPhone 13/13 Mini/13 Pro/13 Pro Max
- BESZÁMÍTÁS! LENOVO ThinkPad P15 Gen 2 munkaállomás - i7 11800H 32GB DDR4 512GB SSD Quadro T1200 W11
- Alkalmi vétel! Akció! Számla + garancia! Apple Macbook Pro 14 - Apple M3 Pro Chip!
- 193 - Lenovo Legion 5 (15IRX10) - Intel Core i7-14700HX, RTX 5070 (ELKELT)
Á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]).
