Zpo-9-wyk-Slajd31: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 1: | Linia 1: | ||
== | ==Inline Method== | ||
[[Image:zpo-9-wyk-Slajd31.PNG| | [[Image:zpo-9-wyk-Slajd31.PNG|Inline Method]] | ||
Najprostszym przekształceniem jest komplementarne do Extract Method rozwinięcie metody, tzn. zastąpienie wywołania metody jej ciałem. Dzięki temu metody wykonujące proste obliczenia, które nie zasługują na umieszczenie w metodzie, mogą zostać usunięte. | |||
Podobnie jak w wielu innych przekształceniach związanych z metodami, najpierw należy upewnić się, że metoda nie jest polimorficznie pokrywana. Dodatkowym warunkiem jest brak jej rekurencyjnych wywołań, które uniemożliwiają (lub bardzo utrudniają) prawidłowe zakończenie refaktoryzacji, oraz jedno miejsce powrotu z metody (choć w niektórych przypadkach wielokrotne instrukcje ''return'' mogą zostać zastąpione operatorem trójargumentowym). Dalsza część polega na kolejnym zastępowaniu wywołań ciałem metody oraz każdorazowym testowaniu przekształcanego fragmentu. Ostatnim krokiem jest usunięcie zbędnej metody. | |||
[[zpo-9-wyk-Slajd30 | << Poprzedni slajd]] | [[zpo-9-wyk-toc|Spis treści ]] | [[zpo-9-wyk-Slajd32 | Następny slajd >>]] | [[zpo-9-wyk-Slajd30 | << Poprzedni slajd]] | [[zpo-9-wyk-toc|Spis treści ]] | [[zpo-9-wyk-Slajd32 | Następny slajd >>]] |
Aktualna wersja na dzień 18:05, 4 lis 2006
Inline Method
Najprostszym przekształceniem jest komplementarne do Extract Method rozwinięcie metody, tzn. zastąpienie wywołania metody jej ciałem. Dzięki temu metody wykonujące proste obliczenia, które nie zasługują na umieszczenie w metodzie, mogą zostać usunięte.
Podobnie jak w wielu innych przekształceniach związanych z metodami, najpierw należy upewnić się, że metoda nie jest polimorficznie pokrywana. Dodatkowym warunkiem jest brak jej rekurencyjnych wywołań, które uniemożliwiają (lub bardzo utrudniają) prawidłowe zakończenie refaktoryzacji, oraz jedno miejsce powrotu z metody (choć w niektórych przypadkach wielokrotne instrukcje return mogą zostać zastąpione operatorem trójargumentowym). Dalsza część polega na kolejnym zastępowaniu wywołań ciałem metody oraz każdorazowym testowaniu przekształcanego fragmentu. Ostatnim krokiem jest usunięcie zbędnej metody.