..


Sponzorirani linkovi

Korištenje mixins u Ruby

Članak napisao Alessio Saltarini
Stranica 1 od 2

Ponekad želite stvoriti klase objekata koji su "to" lice, ali "ovo" i "ovo drugi", koji su vjerojatno već napisan negdje drugdje u izvorni kod.

Drugim riječima, želimo stvoriti klasa koja posuđuje metode i svojstva definirana u drugim dijelovima izvornog koda ili na bilo koji knjižnici.

Isto tako, mi bi okupiti oko iste funkcionalnosti našeg izvornog koda na jednom mjestu budu dostupni svima. Kako?

Čistunce su užasnuti objektno-orijentirano programiranje i podršku - po mom mišljenju nije u potpunosti bez razloga - da je bilo potrebe za ovakav mogu riješiti odgovarajuće korištenje polimorfizma.

Drugi, osobito ako oni dolaze iz iskustva s jezicima poput C + +, tvrde da je upravo zbog tih uvjeta korištenja više baštinu.

Pragmatični jezika poput Ruby, međutim, pozabaviti pitanjem pružajući tehniku ​​pod nazivom "mixins", ime - čini se! - To je sladoled Massuchussets joj sladoled sastoji od raznih okusa (vrhnje, čokolada ...)

Mixins u Ruby

Tehnički, Ruby mixins provode pomoću klasa unutar, broj definiran u različitim modulima (modul).

Da biste trivijalan primjer, pretpostavimo da sam htjela provesti program za obradu teksta koji sam automatski ispisuje razumljivim poslovno pismo. Budući da želite unijeti samo nužne podatke, odnosno primatelju i poruku. Program će misliti razne prijateljski poput: "Poštovani gospodine" i "S poštovanjem".

Mi smo započeli definiranjem srdačnosti u obliku:






 modul CordialitaLettera



    



 def početak (primatelj)



        



 povratak "Poštovani gospodine." + + primatelja "\ n"



    



 kraj



    



 konačni potpis (slovo)



        



 povratak pismo + "\ n" + "S poštovanjem, \ nCarlo Smith"



    



 kraj







 kraj



Ništa posebno, dakle, samo dvije metode koje se mogu mijenjati za unos teksta dobio.

Idemo napisati klasu "mješovita" za ove metode, mixin dopis:






 Klasa Pisma



    



 uključuje CordialitaLettera



    



 konačni stampaLettera (primatelja, poruka)



        



 = Početna točka (primatelj)



        



 pismo + poruke =



        



 stavlja potpis (pismo)



    



 kraj







 kraj



Pisma iznad klasa ima metodu koja uzima kao ulaz samo varijabla dijelove pisma, s prijateljski format definiran u modulu.

Kao što možete vidjeti sintaksa je vrlo slična onoj nasljeđivanja u Ruby, no, za razliku od drugi, u klasi može provesti bilo koji broj oblika - i kao što je poznato, klasa mogu biti izvedeni iz i samo jedan roditelj klasa (Ruby ne podržava višestruke baštinu!)

Na primjer, možemo pisati:






 def main ()



    



 Lengin = Lettere.new



    



 lEngine.stampaLettera ('Alessio Saltarini',



                          



 'Samo sam nastavio za prijenos



                           



 ste zatražili. ')



    



 stavlja



    



 lEngine.stampaLettera ('Matej Pisconi',



                          



 'Šaljem faks nr.038283873.')







 kraj



koji se vraća:





 Dragi sig.Alessio Saltarini,







 Upravo sam uređen za prijenos ste zatražili.







 S poštovanjem,







 Carlo Rossi








 Dragi sig.Matteo Pisconi,







 Šaljem faks nr.038283873.







 S poštovanjem,







 Carlo Rossi



Ova tehnika, između ostalog, omogućuje nam da asimilirati korištenje mixins tom Java sučelja: u stvari, ako klasa je "mix" s obliku, u stvari, to će se provoditi metode (tj. u skladu s određenim sučelje) .

U istoj kategoriji ...
E-učenje
Tečaj Ruby i Ruby On šina Tečaj Ruby i Ruby On šina
Izrada softvera i web aplikacija uz Ruby i ROR. Počevši od 39 €.
Sponzorirani linkovi