Zpo-6-wyk-Slajd5: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Bwalter (dyskusja | edycje)
Nie podano opisu zmian
 
Bwalter (dyskusja | edycje)
Nie podano opisu zmian
 
Linia 1: Linia 1:
==Szablon przekształcenia refaktoryzacyjnego(1)==
==Factory Method: konsekwencje==


[[Image:zpo-6-wyk-Slajd5.PNG|Szablon przekształcenia refaktoryzacyjnego(1)]]
[[Image:zpo-6-wyk-Slajd5.PNG|Factory Method: konsekwencje]]




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.  
Najważniejszym efektem użycia wzorca jest przeniesienie odpowiedzialności za tworzenie obiektów klasy Product z klienta na obiekt klasy Creator. Dzięki temu klient może założyć, że za każdym razem, gdy wywoła metodę ''factoryMethod'' ''(),'' otrzyma instancję klasy gotową do użycia.  


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.  
Ponadto wzorzec umożliwia tworzenie nie tylko instancji jednej klasy, ale całych ich hierarchii, z możliwością wyboru klasy i użytego konstruktora. Bezpośrednie wywołanie konstruktora nie daje takiej możliwości.




[[zpo-6-wyk-Slajd4 | << Poprzedni slajd]] | [[zpo-6-wyk-toc|Spis treści ]] | [[zpo-6-wyk-Slajd6 | Następny slajd >>]]
[[zpo-6-wyk-Slajd4 | << Poprzedni slajd]] | [[zpo-6-wyk-toc|Spis treści ]] | [[zpo-6-wyk-Slajd6 | Następny slajd >>]]

Aktualna wersja na dzień 11:11, 17 paź 2006

Factory Method: konsekwencje

Factory Method: konsekwencje


Najważniejszym efektem użycia wzorca jest przeniesienie odpowiedzialności za tworzenie obiektów klasy Product z klienta na obiekt klasy Creator. Dzięki temu klient może założyć, że za każdym razem, gdy wywoła metodę factoryMethod (), otrzyma instancję klasy gotową do użycia.

Ponadto wzorzec umożliwia tworzenie nie tylko instancji jednej klasy, ale całych ich hierarchii, z możliwością wyboru klasy i użytego konstruktora. Bezpośrednie wywołanie konstruktora nie daje takiej możliwości.


<< Poprzedni slajd | Spis treści | Następny slajd >>