Zpo-11-wyk-Slajd37: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 1: | Linia 1: | ||
== | ==Extract Subclass== | ||
[[Image:zpo-11-wyk-Slajd37.PNG| | [[Image:zpo-11-wyk-Slajd37.PNG|Extract Subclass]] | ||
Przekształceniem analogicznym jest wyłączenie podklasy. Stosuje się je w sytuacjach, gdy część metod należących do klasy w niektórych sytuacjach nie jest wykorzystywana. Oznacza to, że klasa w rzeczywistości powinna być podzielona na dwie części – ogólniejszą i bardziej szczegółową, czyli nadklasę i podklasę, połączone relacją dziedziczenia. | |||
Przekształcenie rozpoczyna się od zdefiniowania nowej podklasy i jej konstruktora, który zwykle odwołuje się bezpośrednio do konstruktora nadklasy. Następnie należy podzielić instancje klasy utworzone przez klientów na te, które wymagają pełnego zbioru metod, i wymagające jedynie części z nich. Te pierwsze powinny być zastąpione przez instancje podklasy (jednak na tym etapie różnica ta nie odgrywa żadnej roli, ponieważ obie klasy posiadają identyczny zbiór metod). Ostatnim krokiem jest przeniesienie metod i pól wymaganych jedynie przez niektóre instancje do podklasy (stosując przekształcenie Push Down Field/Method). | |||
[[zpo-11-wyk-Slajd36 | << Poprzedni slajd]] | [[zpo-11-wyk-toc|Spis treści ]] | [[zpo-11-wyk-Slajd38 | Następny slajd >>]] | [[zpo-11-wyk-Slajd36 | << Poprzedni slajd]] | [[zpo-11-wyk-toc|Spis treści ]] | [[zpo-11-wyk-Slajd38 | Następny slajd >>]] |
Aktualna wersja na dzień 17:37, 4 lis 2006
Extract Subclass
Przekształceniem analogicznym jest wyłączenie podklasy. Stosuje się je w sytuacjach, gdy część metod należących do klasy w niektórych sytuacjach nie jest wykorzystywana. Oznacza to, że klasa w rzeczywistości powinna być podzielona na dwie części – ogólniejszą i bardziej szczegółową, czyli nadklasę i podklasę, połączone relacją dziedziczenia.
Przekształcenie rozpoczyna się od zdefiniowania nowej podklasy i jej konstruktora, który zwykle odwołuje się bezpośrednio do konstruktora nadklasy. Następnie należy podzielić instancje klasy utworzone przez klientów na te, które wymagają pełnego zbioru metod, i wymagające jedynie części z nich. Te pierwsze powinny być zastąpione przez instancje podklasy (jednak na tym etapie różnica ta nie odgrywa żadnej roli, ponieważ obie klasy posiadają identyczny zbiór metod). Ostatnim krokiem jest przeniesienie metod i pól wymaganych jedynie przez niektóre instancje do podklasy (stosując przekształcenie Push Down Field/Method).