Zpo-9-wyk-Slajd48
Replace Method with Method Object
Przekształcenie to jest silnie związane z problemem zmiennych tymczasowych. Dotychczas podstawowym sposobem radzenia sobie z długimi metodami był ich podział poprzez wydzielanie nowych metod. Czasem jednak metoda posiada tyle zmiennych lokalnych, że ich przekazywanie do nowych metod jest w zasadzie niemożliwe.
Celem tego przekształcenia jest zmiana metody w obiekt, który umożliwi podział jej na mniejsze jednostki.
Pierwszym krokiem przekształcenia jest utworzenie nowej klasy, która będzie posiadała referencję do klasy oryginalnej (zatem konieczne jest utworzenie w niej pola odpowiedniego typu i konstruktora inicjującego to pole). Kolejną czynnością jest przeniesienie metody do nowego obiektu, a następnie z jej parametrów i zmiennych lokalnych utworzenie pól tego obiektu. Ten krok pozwala na usunięcie wszystkich zależności, które uniemożliwiały podział metody. W tym momencie wszystkie wywołania oryginalnej metody muszą zostać zastąpione utworzeniem obiektu nowej klasy i wywołaniem metody na tym obiekcie.
Dzięki tej operacji metoda o dużej złożoności może być podzielona na mniejsze metody bez konieczności przekazywania im wszystkich zmiennych lokalnych.