Az osztályra vagy a küldöttre való hivatkozás az orosz verem túlcsordulása

Ahogy mélyebbre megyek a c # nyelvre, egyre inkább azon tűnődöm, miért szükséges ez. Mivel én vagyok öntanító és írom a programot gépeléssel, kódjaimban a hacker megtöri a lábát. De még mindig programokat írok. Természetesen talán helytelenül írom, de a végeredmény az, hogy minden működik.

A probléma az, hogy nincs senki, aki kéri, hogy pontos és megfelelő választ kapjon. Nincsenek ismerős programozók.

előre beállítva január 15-én, 13:15-kor

@ Gennagyij Pisarev Örülnék válaszolni, de a választ erre a kérdésre igényel egy meglehetősen hosszú magyarázat - sajnos meg kell magyarázni a sok annak a ténynek köszönhető, hogy a tudás nagyon felületes látszólag. Írj egy részletes magyarázatot itt, én sajnos nem most, próbálja meg, hogy egy kicsit később, amikor az idő - DreamChild január 26 '15 at 14:23

Egy kis példa a küldöttekről

Néha olyan helyzet állhat fenn, hogy nem ismeri pontosan azt a módszert, amelyet külsõ funkcióra kíván átadni, de egységesnek kell lennie. Ezenkívül a küldöttek is felvehetők.

Tipikus példa a fajtákkal.

Ebben az esetben a módszerek végrehajtása a Fő, de a gyakorlat használata küldöttek, hogy átadják más funkciókat, amelyek nem kell keményen kódolni az alkalmazott módszert.

Egy kis példa az interfészekről

Egy másik dolog az interfészekkel, ezekre szükség van ahhoz, hogy világosan leírhassák, mi van az osztályteremben. Például olyan alkalmazást készít, amely az adatbázishoz csatlakozik. Csatlakoztatnia kell a háromféle adatbáziskezelő rendszerhez: MySQL, SQL SERVER és Oracle. Megteheted a saját osztályodat mindenkinek, és húzhatod őket, de könnyebb áthúzni a felületet anélkül, hogy tudnád az osztály megvalósítását.

Most a kapcsolatokat használó kód nem tud gondolni e kapcsolatok belső végrehajtásáról, és végrehajtja őket a felületen keresztül.

Emellett érdemes megjegyezni, hogy ez nagyon egyszerű, hogy egy új adatbázist (vagy egyáltalán teljesen átírni a régi), örökli a felület és megváltoztatása nélkül a többi kódot. Még mindig itt van a polimorfizmus, mindig tudod, milyen módszerekkel lehet egy osztály, tekintetét a felületére. Ezenkívül lehetővé teszi, hogy az osztályokat ezen a felületen írd. A gyakran használt példa - épül, és a IEnumerable IQueryable, amely örökölt saját osztályokat lehet végrehajtani a helyes viselkedés „mint a tömeg” az index myClass hivatkozások [1] és a „Hogyan át” a foreach (var myClass).

Nos, mivel volt egy könyv témája, itt egy jó lista:

Ezenkívül a küldötteket gyakran használják az eseményekhez való aláírásra (és leiratkozik a - = művelet használatával).

Ez az, amire rögtön emlékszem, még mindig sok olyan helyzet van, ahol az osztályok és az alkalmazási felületek kényelmesek.

A küldött és az igazság szemantikailag nem nagyon különbözik az osztályra való hivatkozástól, valamint azt a jelzést, melyik módszert kell hívni. Nincsenek küldöttek Java-ban, és erre szükség van.

A gyakorlat azonban azt mutatja, hogy ez a megközelítés meglehetősen nehézkes kódot eredményez.

Analóg Java / Swingben

Az igazságosság érdekében meg kell jegyeznem, hogy a Java új verziója ugyanazokkal a küldöttekkel / lambda funkciókkal rendelkezik, így a szintaxis hasonló.

@DreamChild köszönöm. Nem kell megtanulnom, hogyan hozzon létre egy küldöttet. Bár kérdései vannak ezzel kapcsolatban. A kérdés az, hogyan kell hivatkozni az osztályra, és felhívni a módszert, vagy hivatkozni a küldöttre. Mi befolyásolja? Lehet, hogy számos osztályra való hivatkozás hatással van a program teljesítményére vagy valami másra. Ami a kód bőségét illeti, úgyhogy a módszert az osztályra való hivatkozással hívtuk meg, kiderül, hogy egy sort kevesebbet kell írni. Ismétlem, nem írok hatalmas programokat az előny kiértékelésére. - Gennady Pisarev január 27-15-én, 05:45 órakor

@ Gennagyij Pisarev: Nem próbáltam elmagyarázni, hogy hogyan lehet létrehozni egy megbízottja, megpróbáltam megmutatni szintaktikai előny. És azt hiszem, van különbség nem ugyanabban a sorban, a rengeteg boilerplate: nem felhatalmazott kapni fog egy csomó kódot, amely nem mondja, mit gondol, és csak meg kell vágni. A szemantikus előnyök alkalmával minden sokkal nehezebb. Az ízlésem szerint az események forrását csak cselekvésnek nevezem. amelyet be kell kezdeményeznie, így a küldött szemantikailag közelebb áll ahhoz, ahogy gondolom. Ha úgy gondolja, hogy a cselekvésen túl az objektum, amely megvalósítja azt, szintén fontos. - VladD 27 Jan 15, 10:02

@ Gennady Pisarev. akkor helyesebb lesz az objektum átvétele. Vagyis a rekord formáját a szemantika határozza meg, és nem valamilyen dogmatikus szabály, amely egyszer és mindenkorra jár el. Tehát minden esetben pontosan úgy kell választania, mint a program építésze. Számomra túlnyomó többségben az objektum nem fontos, és csak a cselekvés fontos. YMMV. - VladD január 27-15-én 10: 05-kor

Kapcsolódó cikkek