..


Σύνδεσμοι διαφημιζόμενων

Η χρήση του τα μείγματα σε Ruby

Το άρθρο γράφτηκε από Alessio Saltarini
Σελίδα 1 από 2

Μερικές φορές θέλετε να δημιουργήσετε μια κατηγορία αντικειμένων που έχουν "αυτό το" χαρακτηριστικό, αλλά και "αυτό" και "αυτό το άλλο", το οποίο είναι ίσως ήδη γραφτεί σε άλλο σημείο του πηγαίου κώδικα μας.

Με άλλα λόγια, θέλουμε να δημιουργήσουμε μια κατηγορία που δανείζεται μεθόδους και τις ιδιότητες που ορίζονται σε άλλα μέρη του πηγαίου κώδικα ή σε κάποια βιβλιοθήκη.

Αντίθετα, θα μαζεύονται γύρω από τα ίδια χαρακτηριστικά με τον πηγαίο κώδικα μας σε ένα μέρος προσιτή σε όλους. Πώς;

Οι καθαρολόγοι φρίκη object-oriented προγραμματισμό και την υποστήριξη - κατά τη γνώμη μου δεν είναι εντελώς χωρίς λόγο - ότι κάθε ανάγκη αυτού του είδους μπορεί να επιλυθεί με την ορθή χρήση του πολυμορφισμού.

Άλλοι, ιδιαίτερα εάν προέρχονται από την εμπειρία με γλώσσες όπως η C + +, υποστηρίζουν ότι λόγω ακριβώς των απαιτήσεων αυτών με πολλαπλή κληρονομικότητα.

Ρεαλιστικές γλώσσες όπως η Ruby, ωστόσο, να αντιμετωπίσει το θέμα, παρέχοντας μια τεχνική που ονομάζεται "mixin", το όνομα - ακούγεται! - Ένας άνδρας παγωτό της έδωσε την Massuchussets αποτελείται από διάφορες γεύσεις παγωτού (κρέμα, σοκολάτα ...)

Η Ruby τα μείγματα

Τεχνικά, οι Ruby τα μείγματα υλοποιηθεί με τη χρήση μέσα στην τάξη, κωδικό που ορίζεται στο διαφορετικές ενότητες (ενότητα).

Για να πάρουμε ένα ασήμαντο παράδειγμα, ας υποθέσουμε ότι ήθελα να εφαρμόσει ένα πρόγραμμα επεξεργασίας κειμένου που αυτόματα εκτυπώσετε φιλικότητα μου μια επιστολή των επιχειρήσεων. Επειδή θέλετε να εισάγετε μόνο τα απαραίτητα στοιχεία, δηλαδή τον παραλήπτη και το μήνυμα. Το πρόγραμμα θα σκέφτονται τα διάφορα φιλικά όπως, "Sir" και "Φιλικά".

Ας αρχίσουμε από τον ορισμό σε ένα φιλικό μορφή:






 module CordialitaLettera



    



 def εκκίνησης (διεύθυνση)



        



 επιστροφή "Αγαπητέ κ.." + παραλήπτη + "\ n"



    



 τέλος



    



 τελική υπογραφή (επιστολή)



        



 επιστροφή επιστολή + "\ n" + "Ειλικρινά, \ nCarlo Smith"



    



 τέλος







 τέλος



Τίποτα το ιδιαίτερο, τότε, μόνο δύο μεθόδους που μπορεί να αλλάξει το κείμενο λαμβάνει ως είσοδο.

Ας γράψουμε μια κατηγορία "μικτά" σε αυτές τις μεθόδους, μόλις mixin:






 Επιστολές Class



    



 περιλαμβάνει CordialitaLettera



    



 τελικό stampaLettera (παραλήπτη, το μήνυμα)



        



 = Σημείο εκκίνησης (δέκτη)



        



 = + Μετά την επιστολή



        



 βάζει την υπογραφή (επιστολή)



    



 τέλος







 τέλος



Επιστολές πάνω από την τάξη έχει μια μέθοδο που λαμβάνει ως είσοδο μόνο τα μεταβλητά τμήματα της επιστολής, με φιλική μορφή καθορίζεται στην ενότητα.

Όπως μπορείτε να δείτε τη σύνταξη είναι παρόμοια με κληρονομιά σε Ruby, ωστόσο, σε αντίθεση με το τελευταίο, σε μια τάξη μπορεί να υλοποιήσει οποιοδήποτε αριθμό εντύπων - και όπως είναι γνωστό, μια κλάση μπορεί να προέρχεται από και μόνο μία κατηγορία γονέα (Ruby δεν υποστηρίζει πολλαπλή κληρονομικότητα!)

Για παράδειγμα, μπορούμε να γράψουμε:






 def main ()



    



 Lengin = Lettere.new



    



 lEngine.stampaLettera ('Alessio Saltarini »,



                          



 «Απλά προχώρησε στην μεταβίβαση



                           



 που ζητήσατε. ')



    



 βάζει



    



 lEngine.stampaLettera («Κατά Ματθαίον Pisconi»,



                          



 «Έχω στείλει το φαξ σε nr.038283873.")







 τέλος



η οποία επιστρέφει:





 Αγαπητοί sig.Alessio Saltarini,







 Έχω κάνει μόνο τη μεταφορά που ζητήσατε.







 Με εκτίμηση,







 Carlo Rossi








 Αγαπητοί sig.Matteo Pisconi,







 Μου στείλετε το φαξ σε nr.038283873.







 Με εκτίμηση,







 John Doe



Η τεχνική αυτή, μεταξύ άλλων, μας επιτρέπει να αφομοιώσει τη χρήση του ότι τα μείγματα των διεπαφών σε Java: στην πραγματικότητα, εάν μια τάξη είναι «ανάμειξη» με μια φόρμα, στην πραγματικότητα θα εφαρμόσει τις μεθόδους (και ως εκ τούτου να ικανοποιεί ένα συγκεκριμένο περιβάλλον) .

Στην ίδια κατηγορία ...
E-Learning
Ruby και Ruby on Rails (Μάθημα) Ruby και Ruby on Rails (Μάθημα)
Δημιουργία λογισμικού και Web εφαρμογές με Ρουμπίνι και RoR. Από 39 €.
Σύνδεσμοι διαφημιζόμενων