Kezdőoldal » Számítástechnika » Programozás » Mi pontosan a különbség...

Mi pontosan a különbség abban, ha delegálttal vagy interface-el kezelek egy eseményt?

Figyelt kérdés
Órán vettük, példaprogramot is néztünk, de nem igazán láttam nagy különbséget. Kíváncsi lennék miben különböznek nagyobb mélységekben. Köszi a segítséget előre is

2018. ápr. 21. 10:15
 1/7 anonim ***** válasza:
48%
Semmi értelme a kérdésnek.
2018. ápr. 21. 10:18
Hasznos számodra ez a válasz?
 2/7 anonim ***** válasza:

Ezt most én sem értem.

Fejtsd ki bővebben(és nézd meg biztos ezek-e azok a kifejezések).

Illetve milyen nyelv, milyen program?

2018. ápr. 21. 11:09
Hasznos számodra ez a válasz?
 3/7 anonim ***** válasza:

Mielőtt bárki is válaszolna, hagy tisztázzak benned valamit:

Az interface az egy olyan típus, ami megalkotja az olyan osztályoknak az 'arculatát', ahol megvalósításra (implementálásra) kerül.


A delegált lehetővé teszi az események megvalósítását, kvázi több függvényt tudsz rá feliratni (kevesebb megkötéssel mint egy interface-be, olvasd el milyen megkötéseket kell használj egy interface inicializálásnál).

Szerintem (szintén tanuló programozó szerint), az interface-nek és a delegate-nek kb. ennyi összefüggése lehet.

2018. ápr. 21. 11:29
Hasznos számodra ez a válasz?
 4/7 anonim ***** válasza:

Hát a kettő között nem tudok túl sok párhuzamot vonni. Talán annyi hasonlóság van közöttük, hogy mindkettő egyfajta absztrakciós réteget biztosít, csak míg az interface osztályokra, addig a delegate függvényekre. AZ interface lényege, hogy megadhatsz egyfajta 'vázlatot', amiben deklarálhatod, milyen metódusokkal kell rendelkeznie egy osztálynak, így ha egy osztály implementálja azt az interface-t, akkor az összes benne foglalt metódust is implementálnia kell. Ennek röviden az a lényege, hogy kezelhetsz egymástól egyébként független osztályokat egy kalap alatt az interface-ük alapján. Egy nagyon ékes példa például az IComparable interface, ami egy CompareTo metódust deklarál, aminek a célja, hogy két objektum egymással összehasonlítható legyen (kisebb, nagyobb, egyenlő). Nagyon sok osztály valósítja meg ezt az interface-t, pl a legtöbb alap típust megvalósító osztály (Int32, String, Boolean, stb..), illetve te is implementálhatod ezt további, saját osztályokon. Ez az interface lényege röviden, egy biztosíték, hogy egy bizonyos soztály rendelkezik bizonyos metódusokkal.



A delegate ugyanakkor egy függvénytípust deklarál, ha úgy tetszik. Amikor egy delegate-et definiálsz, megadhatod hogy milyen visszatérési értékkel, és paraméterekkel rendelkezzen (magyarul megadhatsz egy függvény fejlécet). Viszont ennyi, konkrét működést függvénydefiníciót nem tartalmaz egy delegate. Viszont, ahogy az interface, ad egy biztosítékot, hogy a delegate-en keresztül megadott függvény ilyen visszatérési értékkel és paraméterrel fog rendelkezni. Ez azért nagyon jó, mert pl így megadhatsz függvényeket paraméterül egy másik függvénynek. Megmondhatod egy függvény fejlécében, hogy ő egy MyDelegate típusú paramétert fog majd kapni, és azt nem tudja ugyan, hogy pontosan mit fog csinálni, de azt tudja, hogy hogyan kell meghívni, és milyen értéket fog visszaadni. És ezután bármilyen megfelelő függvényt átadhatsz paraméterül. Tehát, akárcska az interface, semmilyen lényegi működést nem írsz le benne, de megadsz egy olyan 'vázlatot', amivel különböző, egymástől teljesen eltérő függvényt kezelhetsz egy kalap alatt. Például csinálhatsz egy olyan delegate-et, hogy BinaryOperation delegate-et, ami két integer értéket kér paraméterül, és egy integer értéket köp vissza. Ez a BinaryOperation pedig később tartalmazhat összeadást, kivonást, szorzást, modulószámítást, bármilyen kétváltozós integerműveletet. Így általános értelemben adhatsz meg függvényparaméterül binér műveletet, anélkül, hogy a konkrét műveletet előre specifikálnod kéne.

2018. ápr. 21. 11:47
Hasznos számodra ez a válasz?
 5/7 anonim ***** válasza:
Úgy látszik nem fogjuk megtudni mire gondolt a költő.
2018. ápr. 22. 14:04
Hasznos számodra ez a válasz?
 6/7 A kérdező kommentje:
2018. ápr. 24. 11:14
 7/7 A kérdező kommentje:
Erre gondolt a költő :D
2018. ápr. 24. 11:14

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!