Zpo-5-wyk-Slajd8
Przykład: Extract Method
Ilustracją dla definicji niech będzie jedno z najpopularniejszych przekształceń: Extract Method (wyłączenie metody). Polega ono na podziale złożonej metody na mniejsze poprzez wydzielenie z niej fragmentu kodu i przeniesienie go do nowej metody. Zmienne, których definicje znajdują się poza zakresem tego fragmentu, są przekazywane do tej metody jako parametry.
W tym przypadku metoda scalarProduct () wykonuje dwie czynności: oblicza wartości zmiennych tablicowych x, y i product, a następnie wyświetla je na ekranie. Kod służący do wyświetlania wyników jest wyłączony do nowego metody printScalarProduct (), która następnie jest wywoływana z oryginalnej metody scalarProduct (). W ten sposób program z funkcjonalnego punktu widzenia zachowuje się tak samo: wywołanie metody scalarProduct () powoduje wykonanie odpowiednich obliczeń oraz wyświetlenie ich wyników na ekranie.
Aby spróbować określić warunki poprawności tego przekształcenia, warto zastanowić się, (1) w jakich okolicznościach stworzenie nowej metody będzie niemożliwe, (2) kiedy nie można jej przekazać wymaganych parametrów, (3) kiedy niemożliwe będzie zwrócenie wartości z tej metody.
Proszę je sformułować.