..


Sponsorētās saites

Izmantošana mixins Ruby

Raksts raksta Alessio Saltarini
Lapa 1 no 2

Dažreiz jūs vēlaties izveidot klases objektu, kas ir "šo" funkciju, bet arī "šo" un "šo citu", kas, iespējams, jau ir rakstīts citur mūsu avota kodu.

Citiem vārdiem sakot, mēs vēlētos izveidot klases, kas aizņemas metodes un īpašības noteiktas citās pirmkodu vai kādā bibliotēkā.

Un otrādi, mēs varētu savākt ap pašas iezīmes mūsu pirmkodu vienā vietā pieejamu visiem. Kā?

Purists ir šausmās objektorientētā programmēšana un atbalsts -, manuprāt, nav pilnīgi bez iemesla - ka katrs šāda veida nepieciešama, var atrisināt ar pareizu izmantošanu polimorfisms.

Citi, īpaši, ja tie nāk no pieredzes ar valodām kā C + +, apgalvo, ka tieši tāpēc šīs prasības, izmantojot vairākas mantojuma.

Pragmatiskie valodas, piemēram, Ruby, tomēr, pievērsīsies jautājumam, nodrošinot tehnika sauc par "mixlv" nosaukums - tas skan! - Saldējums vīrs viņai deva Massuchussets veido dažādi saldējuma garšas (krējums, šokolāde ...)

Ruby mixins

Tehniski, Ruby mixins ir realizēti, izmantojot robežās klasēs, kods, kas noteikts dažādos moduļos (modulis).

Lai ņemtu trivial, piemēram, domāju, ka es gribēju, lai īstenotu vārdu procesoru, kas automātiski izdrukā savu draudzīgumu uzņēmējdarbības vēstuli. Tā kā jūs vēlaties, lai ievadītu tikai vajadzīgos datus, ti, saņēmēju un ziņu. Programma domā dažādi draudzīgas, piemēram, "Sir" un "cieņu".

Sāksim ar to definējot draudzīgā veidā:






 modulis CordialitaLettera



    



 def sākums (adrese)



        



 atgriezties "Dear Mr." + saņēmējs + "\ n"



    



 beigas



    



 galīgā parakstu (burts)



        



 atbildes vēstuli + "\ n" + "Ar cieņu, \ nCarlo Smith"



    



 beigas







 beigas



Nekas īpaši tad, tikai divas metodes, kas var mainīt teksta saņēma kā priekšnodokli.

Let 's uzrakstīt klase "jauktās", lai šīs metodes, vienkārši mixlv:






 Klases vēstules



    



 ietver CordialitaLettera



    



 galīgā stampaLettera (adresāts, ziņas)



        



 = Sākumpunktu (uztvērējs)



        



 = Burts + post



        



 liek paraksts (burts)



    



 beigas







 beigas



Vēstules virs klasē ir metode, kas ņem, ko ievada tikai mainīgās daļas, vēstules, ar draudzīgu formātu, modulī.

Kā jūs varat redzēt, sintakse ir diezgan līdzīgs mantojumā Ruby, tomēr atšķirībā no pēdējā, klasē var īstenot jebkādu skaitu veidu - un kā zināms, klasi var iegūt no un tikai viens no vecākiem klase (Ruby neatbalsta vairākas mantojuma!)

Piemēram, mēs varam rakstīt:






 def galvenais ()



    



 Lengin = Lettere.new



    



 lEngine.stampaLettera ("Alessio Saltarini"



                          



 "Es tikko sācis nodot



                           



 jūs pieprasījāt ").



    



 izvirza



    



 lEngine.stampaLettera (Mateja Pisconi "



                          



 "Es sūtīt faksu nr.038283873. ')







 beigas



kas atgriež:





 Cienījamie sig.Alessio Saltarini,







 Esmu tikko veikts nodošanas jūs pieprasījāt.







 Ar cieņu,







 Carlo Rossi








 Cienījamie sig.Matteo Pisconi,







 Es varu sūtīt faksu uz nr.038283873.







 Ar cieņu,







 Carlo Rossi



Šis paņēmiens, cita starpā, ļauj mums to uztvert izmantošanu mixins ka uz saskarņu Java: patiesībā, ja klasē ir "sajaukšanu" ar formu, patiesībā tā īstenos metodes (un tādējādi atbilst noteiktu interfeisu) .

Šajā pašā kategorijā ...
E-Learning
Ruby un Ruby on Rails (Course) Ruby un Ruby on Rails (Course)
Izveidot programmatūras un Web lietojumprogrammas ar Ruby un ROR. Sākot no € 39.
Sponsorētās saites