Zaawansowane projektowanie obiektowe
Katalog przekształceń refaktoryzacyjnych cz. I
Prowadzący:
Bartosz Walter
Katalog przekształceń refaktoryzacyjnych
cz. I
1
Bartosz Walter
Zaawansowane projektowanie obiektowe
Agenda
•
Szablon przekształcenia refaktoryzacyjnego
•
Przekazywanie parametrów do metod
•
Przekształcenia zmiennych lokalnych
•
Przekształcenia w obrębie metod i pól
Katalog przekształceń refaktoryzacyjnych cz. I (2)
Wykład ten jest pierwszym z serii trzech poświęconych prezentacji
katalogu przekształceń refaktoryzacyjnych opartego na ksiąŜce M.
Fowlera.
W tej części zaprezentowane zostaną następujące zagadnienia:
•szablon refaktoryzacji, czyli wzorzec, według którego kaŜde
przekształcenie jest opisywane;
•grupa przekształceń poświęconych przekazywaniu parametrów do
metod,
•przekształcenia związane ze zmiennymi lokalnymi i tymczasowymi;
•przekształcenia w obrębie pól i metod w obiekcie.
Katalog przekształceń refaktoryzacyjnych
cz. I
2
Bartosz Walter
Zaawansowane projektowanie obiektowe
Agenda
•
Szablon przekształcenia refaktoryzacyjnego
•
Przekazywanie parametrów do metod
•
Przekształcenia zmiennych lokalnych
•
Przekształcenia w obrębie metod i pól
Katalog przekształceń refaktoryzacyjnych cz. I (3)
Pierwsza część wykładu dotyczy opisu przekształcenia
refaktoryzacyjnego.
Katalog przekształceń refaktoryzacyjnych
cz. I
3
Bartosz Walter
Zaawansowane projektowanie obiektowe
Szablon przekształcenia refaktoryzacyjnego
Problem
Cel
Mechanika
Przykład
Katalog przekształceń refaktoryzacyjnych cz. I (4)
Szablon przekształcenia refaktoryzacyjnego jest odpowiednikiem szablonu
wzorca projektowego. Przedstawiony podczas wykładu szablon jest
wzorowany na szablonie zastosowanym przez Martina Fowlera w jego
katalogu.
Ograniczony szablon stosowany podczas niniejszego wykładu składa się z
następujących elementów:
•
problemu
, jaki przekształcenie próbuje rozwiązać;
•
celu
, jaki naleŜy za pomocą przekształcenia osiągnąć;
•
mechaniki
, opisującej kolejne kroki, jakie naleŜy podjąć, aby
przekształcenie zostało z powodzeniem i poprawnie zakończone;
•
przykładu
, który przybliŜa sposób jego przeprowadzenia
Katalog przekształceń refaktoryzacyjnych
cz. I
4
Bartosz Walter
Zaawansowane projektowanie obiektowe
Szablon przekształcenia refaktoryzacyjnego
Extract Method
Problem
Metodawykonujewielefunkcji
Cel
Wyłączenieczęścikodudoosobnychmetod
Mechanika
• wybierzfragmentkodu
• poszukajwnimmodyfikowanychzmiennychlokalnych
• utwórznowąmetodęiskopiujdoniejwybranyfragmentkodu
• przekaŜzmiennelokalnedonowejmetodyjakoparametry
• zastąpstarykodwywołaniemnowejmetody
• skompilujiprzetestuj
Przykład
Katalog przekształceń refaktoryzacyjnych cz. I (5)
Na slajdzie przedstawiony został oparty na szablonie opis przekształcenia
refaktoryzacyjnego Extract Method, czyli wyłączenia fragmentu kodu do
nowej metody. Dotyczy ono problemu długich, rozbudowanych metod
realizujących wiele funkcji. Celem przekształcenia jest wyłączenie części
kodu do osobnych, nowoutworzonych metod.
Mechanika polega na wybraniu fragmentu kodu, który ma być wyłączony,
następnie – wyszukaniu w nim modyfikowanych zmiennych lokalnych
(zmienne takie przenoszą informacje pomiędzy tym fragmentem kodu a
szerszym kontekstem, w jakim ten fragment się znajduje) oraz utworzeniu
nowej metody, do której wybrany fragment kodu jest kopiowany. Zmienne
lokalne, które zostały zidentyfikowane, są przekazywane do nowej metody
jako jej parametry. Wówczas stary kod, który na początku został
zaznaczony, moŜe zostać zastąpiony wywołaniem nowej metody.
Katalog przekształceń refaktoryzacyjnych
cz. I
5