Zpo-10-wyk-Slajd32: Różnice pomiędzy wersjami
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 1: | Linia 1: | ||
== | ==Remove Middle Man== | ||
[[Image:zpo-10-wyk-Slajd32.PNG| | [[Image:zpo-10-wyk-Slajd32.PNG|Remove Middle Man]] | ||
Przekształcenie Remove Middle Man jest przeciwieństwem poprzedniej refaktoryzacji. Jego rolą jest usunięcie prostych delegacji z klasy serwera i publiczne udostępnienie delegata. Przekształcenie to ma sens, jeżeli klasa serwera jest prostym tłumaczem protokołów obiektowych i nie dodaje żadnej nowej funkcjonalności w porównaniu do klasy delegata (a jednocześnie nie zachodzą inne przesłanki, np. konieczność dostosowania typów – zob. wzorzec Adapter). | |||
Jego mechanika polega na odwróceniu mechaniki przekształcenia Hide Delegate. Pierwszym krokiem jest utworzenie (lub upublicznienie, jeżeli istniała wcześniej) metody dostępowej do klasy-delegata. Następnie należy zmienić wszystkie klasy klienckie, tak aby wywoływały metody bezpośrednio w klasie delegata, uzyskując do niego referencję poprzez utworzoną w poprzednim kroku metodę dostępową. Po zakończeniu tej czynności metody delegujące z klasy serwera mogą zostać usunięte. Jeżeli serwer po przekształceniu nie posiada już żadnej lub szczątkową funkcjonalność, można go usunąć, stosując np. przekształcenie Inline Class. | |||
[[zpo-10-wyk-Slajd31 | << Poprzedni slajd]] | [[zpo-10-wyk-toc|Spis treści ]] | [[zpo-10-wyk-Slajd33 | Następny slajd >>]] | [[zpo-10-wyk-Slajd31 | << Poprzedni slajd]] | [[zpo-10-wyk-toc|Spis treści ]] | [[zpo-10-wyk-Slajd33 | Następny slajd >>]] |
Aktualna wersja na dzień 17:52, 4 lis 2006
Remove Middle Man
Przekształcenie Remove Middle Man jest przeciwieństwem poprzedniej refaktoryzacji. Jego rolą jest usunięcie prostych delegacji z klasy serwera i publiczne udostępnienie delegata. Przekształcenie to ma sens, jeżeli klasa serwera jest prostym tłumaczem protokołów obiektowych i nie dodaje żadnej nowej funkcjonalności w porównaniu do klasy delegata (a jednocześnie nie zachodzą inne przesłanki, np. konieczność dostosowania typów – zob. wzorzec Adapter).
Jego mechanika polega na odwróceniu mechaniki przekształcenia Hide Delegate. Pierwszym krokiem jest utworzenie (lub upublicznienie, jeżeli istniała wcześniej) metody dostępowej do klasy-delegata. Następnie należy zmienić wszystkie klasy klienckie, tak aby wywoływały metody bezpośrednio w klasie delegata, uzyskując do niego referencję poprzez utworzoną w poprzednim kroku metodę dostępową. Po zakończeniu tej czynności metody delegujące z klasy serwera mogą zostać usunięte. Jeżeli serwer po przekształceniu nie posiada już żadnej lub szczątkową funkcjonalność, można go usunąć, stosując np. przekształcenie Inline Class.