Zpo-10-wyk-Slajd32: 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:
==Prototype: cel==
==Remove Middle Man==


[[Image:zpo-10-wyk-Slajd32.PNG|Prototype: cel]]
[[Image:zpo-10-wyk-Slajd32.PNG|Remove Middle Man]]




Wzorzec Prototype należy do grupy wzorców kreacyjnych, jednak sposób tworzenia przez niego obiektów jest zupełnie inny niż w przypadku innych rozwiązań z tej grupy, np. Factory Method czy Singletona. Celem jego stosowanie jest tworzenie nowych obiektów poprzez klonowanie już istniejącego wzorcowego obiektu.
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

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.


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