..


Linki sponsorowane

Użyj wstawek w Ruby

Artykuł napisany przez Alessio Saltarini
Strona 1 z 2

Czasami chcesz utworzyć klasę obiektów, które mają "to" cecha, ale "to" i "tego drugiego", które prawdopodobnie są już zostało napisane w innym miejscu naszego kodu źródłowego.

Innymi słowy, chcemy utworzyć klasę, która zapożycza metody i właściwości określone w innych częściach kodu źródłowego lub w bibliotece.

Z drugiej strony, staraliśmy się zebrać w tym samym funkcjonalność naszego kodu źródłowego w jednym miejscu dostępne dla wszystkich. Jak zrobić?

Puryści są przerażone programowania obiektowego i wsparcie - moim zdaniem nie do końca bez powodu - że zapotrzebowanie na tego rodzaju może być rozwiązany poprzez właściwe wykorzystanie polimorfizmu.

Inni, zwłaszcza jeśli pochodzą z doświadczenia z języków takich jak C + +, twierdzą, że właśnie z powodu tych wymagań poprzez wielokrotne dziedziczenie.

Pragmatyczny języków takich jak Ruby, jednak rozwiązania problemu poprzez techniki zwanej "wstawek", nazwa - jak się wydaje! - To Massuchussets lody podał jej lody składa się z różnych odmianach (śmietana, czekolada ...)

Wstawek w Ruby

Technicznie, wstawki Ruby są realizowane poprzez zajęcia w ramach, kod zdefiniowany w różnych modułach (moduł).

Aby zrobić banalny przykład, załóżmy, że chciałem wprowadzić w edytorze tekstu, że automatycznie drukuje życzliwość list biznesu. Od chcesz wprowadzić tylko niezbędne dane, tj. odbiorca i wiadomości. Program będzie myśleć różnych przyjazne jak: "Szanowny Panie" i "Z poważaniem".

Zaczynamy od zdefiniowania serdeczności w postaci:






 Moduł CordialitaLettera



    



 def start (odbiorcy)



        



 zwrotu "Drogi Panie". + odbiorca + "\ n"



    



 koniec



    



 ostatecznego podpisu (pisma)



        



 powrót litera + "\ n" + "Z poważaniem, \ nCarlo Smith"



    



 koniec







 koniec



Nic szczególnego, więc tylko dwie metody, które mogą zmienić wprowadzania tekstu otrzymał.

Napiszmy klasy "mieszane" do tych metod, notatki wstawek:






 Listy klasy



    



 obejmuje CordialitaLettera



    



 końcowego stampaLettera (odbiorca, komunikat)



        



 = Punkt początkowy (odbiorcy)



        



 list + message =



        



 stawia podpisu (pisma)



    



 koniec







 koniec



Listy nad klasa ma metody, która przyjmuje jako wejście tylko zmiennej części listu, z przyjaznym formacie zdefiniowane w module.

Jak widać, składnia jest bardzo podobna do dziedziczenia w Ruby, ale, w przeciwieństwie do drugiego, w klasie może wprowadzić dowolną ilość formularzy - a jak wiadomo, klasy mogą być uzyskane z i tylko jedną klasę rodzica (Ruby nie obsługuje wielokrotnego dziedziczenia!)

Na przykład, możemy napisać:






 def main ()



    



 Lengin = Lettere.new



    



 lEngine.stampaLettera ('Alessio Saltarini "



                          



 "I właśnie przystąpił do transferu



                           



 na Twoją prośbę. ")



    



 stawia



    



 lEngine.stampaLettera ("Matthew Pisconi"



                          



 "I wysłać faks do nr.038283873. ')







 koniec



która zwraca:





 Drodzy sig.Alessio Saltarini,







 I tak rozmieszczone, aby przenieść na Twoją prośbę.







 Z poważaniem,







 Carlo Rossi








 Drodzy sig.Matteo Pisconi,







 Wysłać faks na nr.038283873.







 Z poważaniem,







 Carlo Rossi



Technika ta, między innymi, pozwala na przyswojenie używać wstawek do interfejsów Java: w rzeczywistości, jeśli klasa jest "mix" z formularzem, w rzeczywistości będzie wdrożenie metody (tj. zgodne z danym interfejsie) .

W tej samej kategorii ...
E-Learning
Ruby i Ruby On Rails (Kurs) Ruby i Ruby On Rails (Kurs)
Tworzenie oprogramowania i aplikacji webowych w języku Ruby RoR. Począwszy od 39 €.
Linki sponsorowane