Zpo-8-wyk-Slajd38: 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:
==Agenda==
==Data Class==


[[Image:zpo-8-wyk-Slajd38.PNG|Agenda]]
[[Image:zpo-8-wyk-Slajd38.PNG|Data Class]]




Ostatnia grupa przekształceń obejmuje pozostałe refaktoryzacje, które trudno zakwalifikować do pozostałych kategorii.
Klasa jest jednostką kodu obdarzoną odpowiedzialnością. Zatem klasy, których odpowiedzialność sprowadza się do przechowywania danych, nie są poprawne i powinny zostać zmodyfikowane. Oczywiście, istnieją technologie lub obszary zastosowań, w których tego typu obiekty są pożądane. Przykładem może być wzorzec projektowy J2EE Data Transfer Object, w którym obiekt takiej klasy służy do przenoszenia zbioru danych między rozproszonymi komponentami aplikacji. Takie rozwiązanie przynosi wówczas znaczny wzrost wydajności. Podobna argumentacja może również (choć nie powinna) dotyczyć także technologii Java Beans. W praktyce jednak zawsze powinno się ze zbiorem danych związać pewną funkcjonalność – i właśnie jej braku dotyczy ten przykry zapach.
 
Istnieją dwa rozwiązania: rozszerzenie klasy o nową funkcjonalność, aby stałą się w pełni odpowiedzialna za siebie, lub przeniesienie pozostałych resztek funkcjonalności i usunięcie klasy z systemu. Wówczas dane przechowywane przez nią są rozdzielane pomiędzy korzystających z niej klientów.




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

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

Data Class

Data Class


Klasa jest jednostką kodu obdarzoną odpowiedzialnością. Zatem klasy, których odpowiedzialność sprowadza się do przechowywania danych, nie są poprawne i powinny zostać zmodyfikowane. Oczywiście, istnieją technologie lub obszary zastosowań, w których tego typu obiekty są pożądane. Przykładem może być wzorzec projektowy J2EE Data Transfer Object, w którym obiekt takiej klasy służy do przenoszenia zbioru danych między rozproszonymi komponentami aplikacji. Takie rozwiązanie przynosi wówczas znaczny wzrost wydajności. Podobna argumentacja może również (choć nie powinna) dotyczyć także technologii Java Beans. W praktyce jednak zawsze powinno się ze zbiorem danych związać pewną funkcjonalność – i właśnie jej braku dotyczy ten przykry zapach.

Istnieją dwa rozwiązania: rozszerzenie klasy o nową funkcjonalność, aby stałą się w pełni odpowiedzialna za siebie, lub przeniesienie pozostałych resztek funkcjonalności i usunięcie klasy z systemu. Wówczas dane przechowywane przez nią są rozdzielane pomiędzy korzystających z niej klientów.


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