www.oplatka.info
okladka

Podstawowymi zagadnieniami opisywanymi w książce są wzorce, najlepsze techniki, strategie projektowe i sprawdzone rozwiązania wykorzystujące kluczowe technologie J2EE, czyli strony JSP, serwlety, komponenty EJB i interfejs JMS. Katalog wzorców J2EE zawiera 21 wzorców i o wiele więcej strategii, przy wykorzystaniu których powstają najlepsze rozwiązania programistyczne.

"J2EE. Wzorce projektowe. Wydanie drugie" zawiera opis następujących zagadnień:
  • 21 wzorców projektowych J2EE -- znane i w pełni sprawdzone oraz nowe wzorce zapewniające najlepsze rozwiązania dla aplikacji biznesowych
  • strategie projektowe dla warstwy prezentacji, biznesowej i integracji
  • opis zastosowania technologii JSP, EJB, JSM, usług sieciowych i serwletów
  • przykłady nie zalecanych rozwiązań stosujących technologię J2EE
  • sposoby refaktoryzacji poprawiające istniejące projekty
  • diagramy UML ilustrujące przedstawiane zagadnienia
  • dużą liczbę przykładów zastosowania wzorców, strategii i refaktoryzacji

O autorach:
Deepak Alur jest architektem rozwiązań biznesowych Javy w Sun Java Center z 14-letnim doświadczeniem. [więcej...\

John Crupi jest wybitnym inżynierem i szefem architektów Javy w Sun Java Center. [więcej...\

Dan Malks zajmuje się technologiami obiektowymi oraz ich zastosowaniem w projektach biznesowych i usługach sieciowych. [więcej...\


Przedmowa I (11)
Przedmowa II (13)
Wstęp (15)
Część I Wzorce i J2EE (21)
Rozdział 1. Wprowadzenie (23)
  • Czym jest J2EE? (24)
  • Czym są wzorce? (24)
    • Odniesienie historyczne (24)
    • Definiowanie wzorca (25)
    • Kategoryzacja wzorców (26)
  • Katalog wzorców J2EE (27)
    • Ciągła ewolucja (27)
    • Jak korzystać z katalogu wzorców? (28)
    • Zalety stosowania wzorców (29)
  • Wzorce, szkielety i ponowne użycie elementów (31)
  • Podsumowanie (31)
Rozdział 2. Projektowanie warstwy prezentacji i złe praktyki (33)
  • Zagadnienia projektowe warstwy prezentacji (33)
    • Zarządzanie sesją (33)
    • Kontrola dostępu klienta (36)
    • Walidacja (40)
    • Właściwości klas pomocniczych - integralność i spójność (42)
  • Złe praktyki związane z warstwą prezentacji (44)
    • Kod sterujący w wielu widokach (45)
    • Udostępnianie struktur danych warstwy prezentacji warstwie biznesowej (45)
    • Udostępnianie struktur danych warstwy prezentacji obiektom domeny (46)
    • Duplikacja wysyłanych formularzy (46)
    • Udostępnianie poufnych zasobów w sposób bezpośredni (47)
    • Założenie, że <jsp:setProperty> zresetuje właściwości komponentu JavaBean (47)
    • Tworzenie rozbudowanych kontrolerów (48)
    • Użycie skryptletów w widoku (48)
Rozdział 3. Projektowanie warstwy biznesowej i złe praktyki (53)
  • Zagadnienia projektowe warstwy biznesowej (53)
    • Korzystanie z komponentów sesyjnych (53)
    • Korzystanie z komponentów Entity (56)
    • Buforowanie referencji i uchwytów do zdalnych komponentów enterprise bean (58)
  • Złe praktyki związane z warstwą biznesową i warstwą integracji (59)
    • Mapowanie modelu obiektowego bezpośrednio na model komponentów Entity (59)
    • Mapowanie modelu relacyjnego bezpośrednio na model komponentów Entity (60)
    • Mapowanie każdego przypadku użycia na jeden komponent sesyjny (60)
    • Udostępnianie wszystkich atrybutów komponentów poprzez metody ustawiania i pobierania (61)
    • Osadzanie wyszukiwania usług u klienta (61)
    • Stosowanie komponentów Entity jako obiektów tylko do odczytu (62)
    • Korzystanie z komponentów Entity jako drobnych obiektów (63)
    • Zapisywanie całego grafu powiązanych komponentów Entity (64)
    • Ujawnianie wyjątków związanych z EJB klientom spoza warstwy EJB (64)
    • Stosowanie metod Finder komponentów Entity w celu zwrócenia większego zbioru wyników (65)
    • Klient przechowuje dane z komponentów biznesowych (65)
    • Korzystanie z komponentów EJB w długich transakcjach (66)
    • Bezstanowy komponent sesyjny odtwarza stan sesji dla każdego wywołania (66)
Rozdział 4. Refaktoryzacja J2EE (69)
  • Refaktoryzacja warstwy prezentacji (69)
    • Wprowadzenie kontrolera (69)
    • Wprowadzenie tokenu synchronizującego (72)
    • Podział logiki na niezależne fragmenty (76)
    • Ukrycie szczegółów warstwy prezentacji przed warstwą biznesową (81)
    • Usunięcie konwersji z widoku (84)
    • Ukrywanie zasobów przed klientem (87)
  • Refaktoryzacja warstwy biznesowej i warstwy integracji (90)
    • Ukrycie komponentów Entity za komponentami sesyjnymi (90)
    • Wprowadzenie obiektów Business Delegate (92)
    • Łączenie komponentów sesyjnych (94)
    • Redukcja komunikacji między komponentami Entity (96)
    • Przeniesienie logiki biznesowej do warstwy komponentów sesyjnych (98)
  • Ogólne udoskonalanie projektu (99)
    • Wydzielenie kodu dostępu do danych (99)
    • Refaktoryzacja architektury z wykorzystaniem warstw (101)
    • Stosowanie puli połączeń (103)
Część II Katalog wzorców J2EE (105)
Rozdział 5. Omówienie wzorców J2EE (107)
  • Czym jest wzorzec? (108)
    • Identyfikacja wzorca (108)
    • Wzorce a strategie (109)
  • Podejście warstwowe (109)
  • Wzorce J2EE (111)
    • Wzorce warstwy prezentacji (111)
    • Wzorce warstwy biznesowej (111)
    • Wzorce warstwy integracji (112)
  • Wprowadzenie do katalogu (112)
    • Terminologia (113)
    • Stosowanie języka UML (115)
    • Szablon wzorców (116)
  • Związki między wzorcami J2EE (116)
  • Związki z innymi znanymi wzorcami (120)
  • Mapa wzorców (120)
  • Podsumowanie (125)
Rozdział 6. Wzorce warstwy prezentacji (127)
  • Intercepting Filter (127)
    • Problem (127)
    • Siły (128)
    • Rozwiązanie (128)
    • Konsekwencje (143)
    • Powiązane wzorce (145)
  • Front Controller (145)
    • Problem (145)
    • Siły (146)
    • Rozwiązanie (146)
    • Konsekwencje (156)
    • Powiązane wzorce (157)
  • Context Object (157)
    • Problem (157)
    • Siły (158)
    • Rozwiązanie (158)
    • Konsekwencje (175)
    • Powiązane wzorce (175)
  • Application Controller (176)
    • Problem (176)
    • Siły (176)
    • Rozwiązanie (176)
    • Konsekwencje (202)
    • Powiązane wzorce (203)
  • View Helper (203)
    • Problem (203)
    • Siły (204)
    • Rozwiązanie (204)
    • Konsekwencje (219)
    • Powiązane wzorce (222)
  • Composite View (222)
    • Problem (222)
    • Siły (222)
    • Rozwiązanie (223)
    • Konsekwencje (230)
    • Przykładowy kod (231)
    • Powiązane wzorce (233)
  • Service to Worker (233)
    • Problem (233)
    • Siły (234)
    • Rozwiązanie (234)
    • Konsekwencje (238)
    • Przykładowy kod (238)
    • Powiązane wzorce (243)
  • Dispatcher View (243)
    • Problem (243)
    • Siły (243)
    • Rozwiązanie (244)
    • Konsekwencje (248)
    • Przykładowy kod (249)
    • Powiązane wzorce (253)
Rozdział 7. Wzorce warstwy biznesowej (255)
  • Business Delegate (255)
    • Problem (255)
    • Siły (256)
    • Rozwiązanie (256)
    • Konsekwencje (260)
    • Przykładowy kod (262)
    • Powiązane wzorce (265)
  • Service Locator (265)
    • Problem (265)
    • Siły (266)
    • Rozwiązanie (266)
    • Konsekwencje (274)
    • Przykładowy kod (276)
    • Powiązane wzorce (285)
  • Session Façade (286)
    • Problem (286)
    • Siły (286)
    • Rozwiązanie (287)
    • Konsekwencje (290)
    • Przykładowy kod (291)
    • Powiązane wzorce (297)
  • Application Service (298)
    • Problem (298)
    • Siły (299)
    • Rozwiązanie (299)
    • Konsekwencje (306)
    • Przykładowy kod (307)
    • Powiązane wzorce (312)
  • Business Object (312)
    • Problem (312)
    • Siły (313)
    • Rozwiązanie (314)
    • Konsekwencje (323)
    • Przykładowy kod (324)
    • Powiązane wzorce (326)
  • Composite Entity (326)
    • Problem (326)
    • Siły (328)
    • Rozwiązanie (328)
    • Konsekwencje (336)
    • Przykładowy kod (337)
    • Powiązane wzorce (345)
  • Transfer Object (346)
    • Problem (346)
    • Siły (346)
    • Rozwiązanie (347)
    • Konsekwencje (354)
    • Przykładowy kod (355)
    • Powiązane wzorce (360)
  • Transfer Object Assembler (361)
    • Problem (361)
    • Siły (361)
    • Rozwiązanie (361)
    • Konsekwencje (365)
    • Przykładowy kod (365)
    • Powiązane wzorce (369)
  • Value List Handler (369)
    • Problem (369)
    • Siły (370)
    • Rozwiązanie (370)
    • Konsekwencje (375)
    • Przykładowy kod (376)
    • Powiązane wzorce (381)
Rozdział 8. Wzorce warstwy integracji (383)
  • Data Access Object (383)
    • Problem (383)
    • Siły (384)
    • Rozwiązanie (384)
    • Konsekwencje (407)
    • Powiązane wzorce (409)
  • Service Activator (410)
    • Problem (410)
    • Siły (410)
    • Rozwiązanie (410)
    • Konsekwencje (425)
    • Powiązane wzorce (425)
  • Domain Store (426)
    • Problem (426)
    • Siły (426)
    • Rozwiązanie (427)
    • Konsekwencje (458)
    • Powiązane wzorce (458)
  • Web Service Broker (459)
    • Problem (459)
    • Siły (460)
    • Rozwiązanie (460)
    • Konsekwencje (477)
    • Powiązane wzorce (478)
Dodatki (479)
Dodatek A Epilog (481)
  • Mikroarchitektura Web Worker (481)
    • Czym są systemy organizacji pracy? (481)
    • Mikroarchitektura Web Worker (484)
    • Problem (484)
    • Siły (486)
    • Rozwiązanie (487)
    • Konsekwencje (513)
Dodatek B Bibliografia (515)
Licencja (519)
Skorowidz (521)