Metoda řetězení - Method chaining
![]() | tento článek potřebuje další citace pro ověření.Květen 2008) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
Metoda řetězení, také známý jako pojmenovaný idiom parametru, je běžný syntax pro vyvolání více volání metod v objektově orientované programovací jazyky. Každá metoda vrací objekt, což umožňuje, aby byla volání zřetězena dohromady v jednom příkazu, aniž by bylo nutné proměnné ukládat průběžné výsledky.[1]
Odůvodnění
Místní proměnná prohlášení jsou syntaktický cukr.[2]
Řetězení metod eliminuje další proměnnou pro každý mezikrok. Vývojář je uložen z kognitivní zátěže pojmenování proměnné a udržování proměnné v paměti.
Řetězení metod bylo označováno jako produkce „vraku vlaku“ kvůli nárůstu počtu metod, které přicházejí jedna po druhé ve stejné linii, ke které dochází, když je více metod spojeno dohromady.[3]
Podobná syntaxe je metoda kaskádování, kde po volání metody se výraz vyhodnotí na aktuální objekt, ne na návratová hodnota metody. Kaskádování lze implementovat pomocí řetězení metod tak, že metoda vrátí samotný aktuální objekt. Kaskádování je klíčovou technikou plynulá rozhraní, a protože řetězení je široce implementováno v objektově orientovaných jazycích, zatímco kaskádování není, tato forma „kaskádování po řetězcích pomocí tento"se často označuje jednoduše jako" zřetězení ". Řetězení i kaskáda pocházejí z Pokec Jazyk.
Zatímco řetězení je syntaxe, má to sémantické důsledky, konkrétně to vyžaduje metody pro vrácení objektu, a pokud implementujete kaskádování pomocí řetězení, musí to být aktuální objekt. Tím se zabrání tomu, aby se návratová hodnota používala pro jiné účely, jako je vrácení chybová hodnota.
Příklady
Běžným příkladem je proud v C ++, kde například <<
vrací levý objekt a umožňuje řetězení.
Porovnat:
A << b << C;
ekvivalentní:
A << b;A << C;
Další příklad v JavaScript používá integrované metody Array:
něco .filtr(X => X.počet > 10) .třídit((A, b) => A.počet - b.počet) .mapa(X => X.název)
Viz také
Reference
- ^ „Aplikování metodického zřetězení“. http://firstclassthoughts.co.uk/: Myšlenky první třídy. Archivovány od originál dne 22.02.2011. Citováno 2011-04-13.
Za účelem zjednodušení opakovaných interakcí s objekty na stejném objektu je starý trik Metoda řetězení svět původu Smalltalk by měl být prosazován. Cílem je nechat metody vrátit se
tento
spíše nežprázdnota
, což ovlivňuje zejménasoubor()
apřidat()
metody. Řetězení metod vzniklo během snahy designérů Smalltalk o minimalizaci počtu klíčových slov v jazyce, což vedlo k objevu, žeprázdnota
je zbytečné klíčové slovo !. - ^ „CMSC 631 - Analýza a porozumění programu“ (PDF).
• Syntaktický cukr pro místní deklarace - nechť x = e1 v e2 je zkratka pro (λx.e2) e1
- ^ Martin, Robert Cecil (2008). Clean Code: A Handbook of Agile Software Craftsmanship. Prentice Hall. ISBN 0-13-235088-2.
- ^ Řetězení metod v PHP