- Google Pixel topik
- Apple iPhone Air - almacsutka
- iPhone topik
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Fotók, videók mobillal
- Apple iPhone 16 Pro - rutinvizsga
- Honor 400 Pro - Gép a képben
- Szívós, szép és kitartó az új OnePlus óra
- Samsung Galaxy S23 Ultra - non plus ultra
- Ezzel a mobillal készülhet a 2026-os MWC-re a HMD
Ú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
- Lakáshitel, lakásvásárlás
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Eredeti játékok OFF topik
- Soundbar, soundplate, hangprojektor
- AliExpress tapasztalatok
- Gaming notebook topik
- Google Pixel topik
- Lexus, Toyota topik
- Rezsicsökkentés, spórolás (fűtés, szigetelés, stb.)
- Gyúrósok ide!
- További aktív témák...
- Acer Swift 3 Ultrabook / Ryzen 7 5700U / RX Vega 5 / 16 GB RAM / 512 GB SSD
- ASUS TUF FX505DU - 15,6"FHD IPS 120Hz - Ryzen 7-3750H - 8GB - 512GB - Win11 - GTX 1660 Ti - MAGYAR
- Gamer PC-Számítógép! Csere-Beszámítás! R5 3600 / RX 5700 / 16GB DDR4 / 512GB SSD
- GIGABYTE Z390 AORUS MASTER WiFi Alaplap
- GAMER PC! Ryzen 7800X3D / RTX 5070 Ti / 32GB 6400MHz / B650 WiFi / 1TB Gen4 / 750w GOLD! BeszámítOK
- Bomba ár! Lenovo ThinkPad T470 - i5-G6 I 8GB I 256GB SSD I 14" FHD I HDMI I Cam I W10 I Garancia!
- Magyarország piacvezető szoftver webáruháza
- LG 29WP60G-B - 29" IPS LED - 2560x1080 Wide FHD - 75Hz 1ms - AMD FreeSync - HDR10
- HP EliteBook 830 G7 i5-10210U 16GB 512GB 1 év garancia
- Telefon felvásárlás!! iPhone 15/iPhone 15 Plus/iPhone 15 Pro/iPhone 15 Pro Max
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest