Zpo-10-wyk-Slajd29

Z Studia Informatyczne
Wersja z dnia 17:52, 4 lis 2006 autorstwa Bwalter (dyskusja | edycje)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacjiPrzejdź do wyszukiwania

Hide Delegate

Hide Delegate


Celem tego przekształcenia jest poprawa hermetyzacji systemu poprzez ukrycie faktu delegowania żądań przez serwer. W układzie składającym się z trzech klas: klienta, serwera i delegata oznacza to, że klient kontaktuje się jedynie z serwerem, pozostając nieświadomym istnienia delegata, któremu serwer zleca obsługę żądania. Dzięki temu nie występuje powiązanie pomiędzy klientem a delegatem. Pozwala to na elastyczną zmianę delegata w trakcie wykonywania programu.

Przekształcenie polega na utworzeniu w klasie serwera prostych delegacji przekierowujących obsługę żądania klienta do delegata. Ponieważ przekształcenie to wiąże się z tworzeniem nowych metod, należy koniecznie upewnić się, że ich powstanie nie zaburza polimorficznego pokrywania w hierarchii dziedziczenia. W takim wypadku przekształcenie to nie może być skutecznie i poprawnie zastosowane.

Następnym krokiem jest modyfikacja klas klienckich, tak aby wywoływały żądania jedynie w klasie serwera, a nie bezpośrednio na delegacie. Po zakończeniu tego kroku można ukryć fakt istnienia klienta poprzez uczynienie prywatną referencji do niego w klasie serwera.


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