Zpo-8-wyk-Slajd31: 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:
==Przykład 2(1)==
==Long Method==


[[Image:zpo-8-wyk-Slajd31.PNG|Przykład 2(1)]]
[[Image:zpo-8-wyk-Slajd31.PNG|Long Method]]




Rozwiązaniem takiego problemu jest przeniesienie fragmentów kodu nie do konstruktora, ale do osobnej metody ''inicjuj'' ''(),'' która zostanie wywołana w konstruktorze. Metoda ta ta może zdefiniować szkielet (zob. wzorzec Template Method), którego elementy – metody ''czyDuze'' ''()'' i ''wyznaczRegal'' ''()'' – mogą zostać pokryte w podklasach. Wywołanie metody ''inicjuj'' ''()'' w klasie Książka powoduje zatem wywołanie właściwych metod ''czyDuze'' ''()'' i ''wyznaczRegal'' ''().''
Kolejnym często spotykanym problemem w kodzie są długie metody. Istotna nie jest jednak bezwzględna długość (jest ona tylko objawem), a liczba funkcji, jakie metoda realizuje. Przyczyn jest wiele – jedną z nich jest niewłaściwy podział aplikacji na warstwy funkcjonalne i brak wsparcia ze strony metod w niższych warstwach. Wówczas długa metoda sama realizuje funkcje, które powinny być dostarczone przez inną warstwę aplikacji.
 
Podobnie jak w przypadku duplikatów, podstawową metodą usuwania tego problemu jest wyłączanie kodu do nowych metod. Jednak nie zawsze jest to możliwe podział często jest blokowany przez zależności między zmiennymi lokalnymi w metodzie. Wówczas można zamienić je w metody, co pozwala zmniejszyć liczbę powiązań między nimi. Jeżeli to niemożliwe, warto zamienić metodę w nową klasę, zmieniając parametry metody w pola klasy.
 
Ponieważ długie metody posiadają często długie listy parametrów, warto również usunąć ten problem za pomocą łączenia ich we wspólne klasy.




[[zpo-8-wyk-Slajd30 | << Poprzedni slajd]] | [[zpo-8-wyk-toc|Spis treści ]] | [[zpo-8-wyk-Slajd32 | Następny slajd >>]]
[[zpo-8-wyk-Slajd30 | << Poprzedni slajd]] | [[zpo-8-wyk-toc|Spis treści ]] | [[zpo-8-wyk-Slajd32 | Następny slajd >>]]

Aktualna wersja na dzień 18:14, 4 lis 2006

Long Method

Long Method


Kolejnym często spotykanym problemem w kodzie są długie metody. Istotna nie jest jednak bezwzględna długość (jest ona tylko objawem), a liczba funkcji, jakie metoda realizuje. Przyczyn jest wiele – jedną z nich jest niewłaściwy podział aplikacji na warstwy funkcjonalne i brak wsparcia ze strony metod w niższych warstwach. Wówczas długa metoda sama realizuje funkcje, które powinny być dostarczone przez inną warstwę aplikacji.

Podobnie jak w przypadku duplikatów, podstawową metodą usuwania tego problemu jest wyłączanie kodu do nowych metod. Jednak nie zawsze jest to możliwe – podział często jest blokowany przez zależności między zmiennymi lokalnymi w metodzie. Wówczas można zamienić je w metody, co pozwala zmniejszyć liczbę powiązań między nimi. Jeżeli to niemożliwe, warto zamienić metodę w nową klasę, zmieniając parametry metody w pola klasy.

Ponieważ długie metody posiadają często długie listy parametrów, warto również usunąć ten problem za pomocą łączenia ich we wspólne klasy.


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