Ist alias_method_chain gleichbedeutend mit alias_method?
Wenn diese beiden Methoden sind einfach Synonyme, warum Menschen gehen, um die Mühe des Schreibens der zusätzlichen Zeichen "_chain
"?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn diese beiden Methoden sind einfach Synonyme, warum Menschen gehen, um die Mühe des Schreibens der zusätzlichen Zeichen "_chain
"?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht.
alias_method
ist eine standard-Methode aus Ruby.alias_method_chain
ist ein Schienen-add-on entwickelt, um die Vereinfachung der gemeinsamen Aktion von aliasing der alten Methode unter einem neuen Namen und dann ist aliasing eine neue Methode, um den ursprünglichen Namen. Also, wenn zum Beispiel Sie erstellen eine neue version desmethod
Methode mit der neuen Funktionnew_feature
die folgenden beiden code-Beispiele sind gleichwertig:und
BEARBEITEN
Hier ist ein hypothetisches Beispiel: angenommen wir hätten eine Klasse Person mit der Methode
rename
. Alle es tut, ist, nehmen Sie eine Zeichenfolge wie "John Doe", aufgeteilt auf die Platz, und ordnen Sie die Teile zu first_name und last_name. Zum Beispiel:Nun haben wir ein problem. Wir halten immer neue Namen, die nicht groß geschrieben richtig. Also können wir schreiben eine neue Methode
rename_with_capitalization
und verwendenalias_method_chain
zur Lösung dieses Problems:Nun, die alten
rename
heißtrename_without_capitalization
, undrename_with_capitalization
istrename
. Zum Beispiel:alias_method_chain
ist der schlechteste Weg, das zu tun method call interception. Wenn Sie sind auf der Suche nach ähnlichen Techniken, verwenden Sie es nicht außen Schienen.