ZAWWW-2st1.2-w11.tresc-1.0-Slajd33
Transfer Object
Wzorzec Transfer Object porządkuje i upraszcza komunikację między warstwami aplikacji. Umożliwia on zamianę zdalnych wywołań metod komponentów (dotyczy to przede wszystkim komponentów sesyjnych i encyjnych) na transfer danych między warstwami. Wzorzec Transfer Object jest implementowany w postaci obiektów transferowych należących do prostych klas Java (POJO – plain old Java object). Dzięki ich zastosowaniu interfejsy zdalne wielu komponentów upraszczają się do dwóch metod: getData() i setData(), a wszystkie pozostałe operacje są wykonywane na kopii danych przyniesionych przez obiekt transferowy. Zastosowanie obiektów transferowych redukuje też obciążenia sieci, ponieważ transfer danych między warstwami jest realizowany za pomocą pojedynczego przesłania. Niestety, stosowanie obiektów transferowych narzuca konieczność synchronizacji zawartości obiektów transferowych ze źródłem danych (obiekt transferowy może zawierać dane, które stały się już nieaktualne) oraz kontroli współbieżnego dostępu do takich obiektów.
Ze wzorcem Transfer Object ściśle wiąże się wzorzec Transfer Object Assembler. Jest to wzorzec projektowy umożliwiający pobranie modelu aplikacji z warstwy biznesowej w postaci dużego złożonego obiektu TransferObject. Jeśli model aplikacji jest potrzebny w warstwie prezentacji, to w warstwie biznesowej następuje złożenie modelu aplikacji (poprzez połączenie wielu części modelu z obiektów Business Object, Data Access Object, Application Service) i przetransferowanie modelu aplikacji do warstwy prezentacji w postaci jednego obiektu transferowego.