Mikor van értelme osztálykönyvtárakat létrehozni?
Ezt írja a könyv róla:
Eddig mindig egyetlen projektben dolgoztunk, ennek viszont megvan az a hátránya, hogy a program
növekedésével együtt a forráskód is több helyet foglal. Hozzá kell tennünk azt is, hogy ez a fajta megközelítés a
kód-újrafelhasználást is rontja, hiszen az általánosabb programrészeket minden új projektbe ismét be kellene
másolni. Sokkal egyszerűbb lenne a dolgunk, ha az újrahasznosítandó forráskódot külön tudnánk választani a
tényleges programtól, ezzel időt és helyet takarítva meg. Erre a célra találták ki a shared library (~megosztott
könyvtár) fogalmát, amely a Windows alapú rendszereken a DLL -t (Dynamic Link Library) jelenti.
A DLL könyvtárak felépítése a használt fejlesztői platformtól függ, tehát egy COM DLL nem használható
közvetlenül egy .NET programban. .Net környezetben egy ilyen könyvtárat assemblynek nevezünk.
De én nem értem,hogy ennek mi értelme van.Itt azt írja,hogy ennek az értelme az,hogy időt és helyet takarítsunk meg de én nem értem,hogy ki írna olyan kódot amibe többször fog kelleni beleírni valamit.
Ez hülyeség.Az aki így tesz az nem tud kódolni.
Akkor ezt csak azoknak találták ki akik nem tudnak normális szép kódot írni.Minek használni a dll ket újrahasznosításra a sablonok vannak.
Magyarázzátok el mikor kell használni?
Akkor érdemes, amikor azt veszed észre, hogy olyan dolgot készülsz megvalósítani a programodban, ami később is jól jöhet. Ilyen pl. a mátrixok kezelése, vagy csinálsz egy WinForms programhoz valami saját komponenst (pl. egy új fajta progressbar, vagy valami).
Ez azért is jó, mivel nem kimásolni kell a kódot minden alkalommal, amikor kell, ami akár sok idő is lehet, hanem egyszerűen csak referenciaként megadod a library-t és már használhatod is.
Hülyeségnek tűnhet az egész, eleinte én sem láttam értelmét. Te is rájössz majd, milyen jó, mikor kipróbálod.
Nem értem.
Minek másolgatni,akkor sem kell,ha nem teszem ezt bele egy külön dll be.Vagy egy új progressbar ezt is minek külön dll be rakni?
Mind a kettőnek lesz egy saját osztálya egy-egy fájlban és akkor ezt példányosítom és használom.Ha pedig egy másik osztály is szeretné használni,akkor meg osztályok beillesztése más osztályok adattagjaiként és kész.
Magyarázzátok el minek van mert nem megy a fejembe.
"hanem egyszerűen csak referenciaként megadod a library-t és már használhatod is."
Erre én azt mondom,hogy ahol referenciaként megadom a könyvtárt ott példányosíthatok is vagy akár példányosítás nélkül osztályon keresztül hivatkozom mert static van.
Azért nem érted a dolgot, mert te úgy gondolod, hogy megírsz egy programot, és azon belül te szépen használod. Ez eddig oké, tényleg felesleges külön library-be tenni.
De hoppá. Nekiállsz egy új projektnek, elkezdesz írni egy új programot. És rögtön előjön az, hogy hoppá, én ezt meg ezt az előző programomban már megcsináltam. Te mit fogsz csinálni? A forráskódot szépen kimásolod az előző programodból, majd beilleszted az új programod kódjába.
Na, ezt a kódmásolgatást úszod meg, ha DLL-t használsz.
Tényleg :D
Nyomtam zöldet.
Nem osztályok, projektek közötti újrafelhasználásról volt szó. Tegyük fel, egy projektedhez megírsz néhány Controlt, mert egyik meglévő sem felel meg neked. Aztán egy új projektbe kezdesz, és rájössz, hogy ott is jó lenne azt használni, amit már egyszer megírtál. Ekkor egyrészt átmásolhatod a forrásfájlokat, de ennek megvan az a hátránya, hogy pl hibajavításkor, frissítéskor az összes projekteden végig kell vezetned a módosításkor. Nem szép, nem célszerű megoldás. Viszont ha különálló DLL-be szervezed, elég azt frissíteni. Természetesen ez nem csak Controlokra érvényes, más komponensekre is, legyen szó akár pl tömörítő, vagy cloudba-exportáló kódrészletekről...
Másik előnye, hogy nem kell a DLL-be szervezett komponenseket is memóriában tartani mindig, elég akkor betölteni, ha szükség van rájuk.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!