Szczegóły ebooka

Wzorce projektowe. Rusz głową! Tworzenie rozszerzalnego i łatwego w utrzymaniu oprogramowania obiektowego. Wydanie II

Wzorce projektowe. Rusz głową! Tworzenie rozszerzalnego i łatwego w utrzymaniu oprogramowania obiektowego. Wydanie II

Eric Freeman, Elisabeth Robson

Ebook

Nie warto wyważać otwartych drzwi ani ponownie wynajdywać koła. Sprytniej jest skorzystać ze sprawdzonych rozwiązań, które ktoś już opracował i wdrożył. Dlatego właśnie mądrzy programiści lubią wzorce projektowe: to jest ich sekretny sposób, aby nie tracić sił na nudne drobiazgi, tylko zająć się trudniejszymi, ważniejszymi i ciekawszymi zadaniami. Nic dziwnego, że powstało naprawdę bardzo dużo wzorców projektowych. Przegląd ich wszystkich byłby niemożliwy. Które z nich więc są najpotrzebniejsze w programowaniu obiektowym i kiedy dokładnie z nich skorzystać?

Odpowiedź na to fundamentalne pytanie znajdziesz w tej książce ? drugim wydaniu świetnego podręcznika dla przyszłych mistrzów kodu. Zostało ono, podobnie jak inne pozycje z serii Rusz głową!, przygotowane zgodnie z najnowszymi odkryciami nauk poznawczych, teorii uczenia się i neurofizjologii. I właśnie dzięki temu zaangażujesz swój mózg, wykorzystasz wiele zmysłów i niepostrzeżenie poznasz najprzydatniejsze i najciekawsze wzorce projektowe stosowane w programowaniu zorientowanym obiektowo. Tak złożone tematy, jak klasy, interfejsy, kolekcje czy łączenie wzorców, staną się jasne i zrozumiałe. Tego wszystkiego będziesz się uczyć, rozwiązując łamigłówki, wykonując praktyczne ćwiczenia, pisząc aplikacje - i wybuchając głośnym śmiechem!

W książce między innymi:

  • solidne podstawy korzystania z wzorców projektowych
  • dlaczego wzorce projektowe są idealne do programowania zorientowanego obiektowo
  • hermetyzacja, adaptacja, zarządzanie kolekcjami, kontrola dostępu i wiele innych wzorców
  • praktyczne wdrażanie wzorców projektowych
  • mnóstwo radości z tworzenia pięknego kodu obiektowego

Witaj w Obiektowie - i ciesz się każdą nową klasą!

Wprowadzenie

  • Dla kogo przeznaczona jest ta książka? (xxvi)
  • Wiemy, co sobie myślisz (xxvii)
  • Wiemy także, co sobie myśli Twój mózg (xxvii)
  • Wyobrażamy sobie, że Czytelnik tej książki jest uczniem (xxviii)
  • Metapoznanie: myślenie o myśleniu (xxix)
  • Oto co zrobiliśmy (xxx)
  • Oto co możesz zrobić, aby zmusić swój mózg do posłuszeństwa (xxxi)
  • Kilka ostatnich spraw, o których musisz wiedzieć (xxxii)
  • Zespół recenzentów technicznych (xxxiv)
  • Podziękowania (xxxv)

ROZDZIAŁ 1. Wprowadzenie do wzorców projektowych. Witamy w krainie wzorców projektowych

  • Wszystko rozpoczęło się od prostej aplikacji o nazwie KaczySim (2)
  • Ale teraz nasze kaczki muszą LATAĆ (3)
  • Ale coś poszło strasznie nie tak... (4)
  • Józek rozmyśla o dziedziczeniu... (5)
  • A może by tak interfejs? (6)
  • Co byś zrobił na miejscu Józka? (7)
  • Jedyny pewny element procesu wytwarzania oprogramowania (8)
  • Zerowanie problemu... (9)
  • Oddzielanie tego, co się zmienia, od tego, co pozostaje niezmienione (10)
  • Projektowanie zachowań Kaczki (11)
  • Implementacja zachowań klasy Kaczka (13)
  • Integracja zachowań klasy Kaczka (15)
  • Testowanie kodu klasy Kaczka (18)
  • Dynamiczne ustawianie zachowania (20)
  • Kompletny diagram hermetyzowanych zachowań (22)
  • Relacja MA może być lepsza od JEST (23)
  • Rozmawiając o wzorcach projektowych... (24)
  • Zasłyszane w lokalnym barze szybkiej obsługi... (26)
  • Zasłyszane w sąsiednim boksie (27)
  • Potęga wspólnego słownika wzorców (28)
  • W jaki sposób mogę używać wzorców projektowych? (29)
  • Narzędzia do Twojej projektowej skrzynki narzędziowej (32)

ROZDZIAŁ 2. Wzorzec Obserwator. Jak sprawić, by Twoje obiekty były zawsze dobrze poinformowane

  • Ogólne spojrzenie na aplikację monitorującą warunki pogodowe (37)
  • Spotkanie ze wzorcem Obserwator (42)
  • Wydawca + prenumeratorzy = wzorzec Obserwator (43)
  • Definicja wzorca Obserwator (49)
  • Siła luźnych powiązań (52)
  • Projektowanie stacji meteorologicznej (55)
  • Implementacja stacji meteorologicznej (56)
  • Włączamy zasilanie stacji meteorologicznej (59)
  • Podglądanie wzorca Obserwator w naturze (63)
  • Pisanie kodu aplikacji, która odmieni nasze życie (64)
  • Wróćmy do prac nad aplikacją meteorologiczną (67)
  • Jazda próbna nowego kodu (69)
  • Twoja projektowa skrzynka narzędziowa (70)
  • Reguły projektowe - wyzwanie (71)

ROZDZIAŁ 3. Wzorzec Dekorator. Dekorowanie obiektów

  • Witamy w "Star Café" (76)
  • Reguła otwarte-zamknięte (82)
  • Spotkanie z wzorcem Dekorator (84)
  • Konstruowanie zamówień przy użyciu dekoratorów (85)
  • Definicja wzorca Dekorator (87)
  • Dekorujemy nasze napoje (88)
  • Tworzymy kod aplikacji "Star Café" (91)
  • Tworzenie klas napojów (92)
  • Tworzenie kodu klas dodatków (93)
  • Podajemy kawy (94)
  • Dekoratory w świecie rzeczywistym: obsługa wejścia-wyjścia w języku Java (96)
  • Dekorowanie klas pakietu java.io (97)
  • Tworzenie własnych dekoratorów obsługi wejścia-wyjścia (98)
  • Testowanie nowego dekoratora strumieni wejścia-wyjścia (99)
  • Twoja projektowa skrzynka narzędziowa (101)

ROZDZIAŁ 4. Wzorzec Fabryka. Wypieki obiektowe

  • Identyfikacja zmiennych elementów aplikacji (108)
  • Hermetyzacja procesu tworzenia obiektów (110)
  • Budujemy prostą fabrykę pizzy (111)
  • Tworzymy definicję "wzorca" Prosta Fabryka (113)
  • Nowa struktura klasy Pizzeria (116)
  • Zezwalamy klasom podrzędnym na podejmowanie decyzji (117)
  • Deklarowanie metody typu Fabryka (121)
  • Wreszcie nadszedł czas na spotkanie ze wzorcem Metoda Wytwórcza (127)
  • Spojrzenie na równoległe hierarchie klas twórców i produktów (128)
  • Definicja wzorca Metoda Wytwórcza (130)
  • Sprawdzamy zależności między obiektami (134)
  • Reguła odwracania zależności (135)
  • Stosowanie reguły DIP (136)
  • Rodziny składników... (141)
  • Budujemy fabryki składników pizzy (142)
  • Aktualizacja kodu klas Pizza (145)
  • Odwiedzamy lokalne oddziały naszej sieci pizzerii (148)
  • Czego udało się nam dokonać? (149)
  • Definicja wzorca Fabryka Abstrakcyjna (152)
  • Porównanie Metody Wytwórczej oraz Fabryki Abstrakcyjnej (156)
  • Twoja projektowa skrzynka narzędziowa (158)

ROZDZIAŁ 5. Wzorzec Singleton. Obiekty jedyne w swoim rodzaju

  • Analiza klasycznej implementacji wzorca Singleton (167)
  • Fabryka czekolady (169)
  • Definicja wzorca Singleton (171)
  • Ups, mamy problem... (172)
  • Jak sobie radzić z wielowątkowością? (174)
  • Czy możemy ulepszyć działanie wielowątkowości? (175)
  • A w międzyczasie w fabryce czekolady... (177)
  • Twoja projektowa skrzynka narzędziowa (180)

ROZDZIAŁ 6. Wzorzec Polecenie. Hermetyzacja wywołań

  • Automatyka w domu i zagrodzie (186)
  • Przegląd dostarczonych klas (188)
  • Krótkie wprowadzenie do wzorca Polecenie (191)
  • Od baru do wzorca Polecenie (195)
  • Nasze pierwsze polecenie (197)
  • Zastosowanie polecenia (198)
  • Przypisywanie poleceń do gniazd (203)
  • Implementujemy SuperPilota (204)
  • Implementacja poleceń (205)
  • Sprawdzamy możliwości naszego SuperPilota (206)
  • Nadszedł wreszcie czas, aby przygotować trochę dokumentacji... (209)
  • Co robimy? (211)
  • Sprawdzamy poprawność działania przycisku Wycofaj (214)
  • Implementacja mechanizmu wycofywania przy użyciu stanów (215)
  • Dodajemy mechanizm wycofywania do poleceń sterujących wentylatorem (216)
  • Każdy pilot powinien mieć tryb Impreza! (219)
  • Stosowanie makropoleceń (220)
  • Kolejne zastosowania wzorca Polecenie - kolejkowanie żądań (223)
  • Kolejne zastosowania wzorca Polecenie - żądania rejestracji (224)
  • Wzorzec Polecenie w rzeczywistych zastosowaniach (225)
  • Twoja projektowa skrzynka narzędziowa (227)

ROZDZIAŁ 7. Wzorce Adapter i Fasada. Zdolność adaptacji

  • Adaptery są wszędzie wokół nas (232)
  • Adaptery obiektowe (233)
  • Jeśli coś chodzi jak kaczka i kwacze jak kaczka, to musi może być kaczką indykiem opakowanym w adapter kaczki... (237)
  • Testujemy adapter dla indyka (236)
  • Wzorzec Adapter bez tajemnic (237)
  • Definicja wzorca Adapter (239)
  • Adaptery obiektów i klas (240)
  • Adaptery w świecie rzeczywistym (244)
  • Adaptujemy interfejs Enumeration do wymagań interfejsu Iterator (245)
  • Nie ma to jak kino domowe (251)
  • Oglądanie filmów (wersja dla prawdziwych twardzieli) (252)
  • Światła, kamera, fasada! (254)
  • Konstruujemy fasadę naszego systemu kina domowego (257)
  • Implementujemy uproszczony interfejs (258)
  • Czas na seans (wersja soft, dla całej rodziny) (259)
  • Definicja wzorca Fasada (260)
  • Reguła ograniczonej interakcji (261)
  • Jak zrazić do siebie przyjaciół, czyli interakcje między obiektami (262)
  • Wzorzec Fasada kontra reguła ograniczania interakcji (265)
  • Twoja projektowa skrzynka narzędziowa (266)

ROZDZIAŁ 8. Wzorzec Metoda Szablonowa. Hermetyzacja algorytmów

  • Czas na nieco więcej kofeiny... (270)
  • Tworzymy klasy reprezentujące kawę i herbatę (w języku Java) (271)
  • Kawa i herbata, czyli klasy abstrakcyjne (274)
  • Posuńmy nasz projekt o krok dalej... (275)
  • Wyodrębnianie metody recepturaParzenia() (276)
  • Co udało się nam osiągnąć? (279)
  • Spotkanie z wzorcem Metoda Szablonowa (280)
  • Co nam daje zastosowanie metody szablonowej? (282)
  • Definicja wzorca Metoda Szablonowa (283)
  • Stosujemy haczyk we wzorcu Metoda Szablonowa... (286)
  • Zastosowanie haczyka (287)
  • Reguła Hollywood a wzorzec Metoda Szablonowa (291)
  • Wzorzec Metoda Szablonowa w dziczy... (293)
  • Sortowanie przy użyciu wzorca Metoda Szablonowa (294)
  • A teraz musimy posortować parę kaczek... (295)
  • Czym jest metoda compareTo()? (295)
  • Porównywanie kaczek z innymi kaczkami (296)
  • No to posortujmy sobie trochę kaczek (297)
  • Robimy maszynę do sortowania kaczek (298)
  • Zabawy z ramkami (300)
  • Tworzenie niestandardowej listy przy użyciu klasy AbstractList (301)
  • Twoja projektowa skrzynka narzędziowa (305)

ROZDZIAŁ 9. Wzorce Iterator i Kompozyt. Zarządzanie kolekcjami

  • Z ostatniej chwili - fuzja baru Obiadowo i restauracji Naleśnikarnia (308)
  • Przegląd pozycji menu (309)
  • Implementacja specyfikacji kelnerki: podejście pierwsze (313)
  • Czy można hermetyzować iteracje? (315)
  • Poznajemy wzorzec Iterator (317)
  • Dodawanie iteratora do ObiadowoMenu (318)
  • Poprawiamy kod kelnerki (320)
  • Testowanie kodu (321)
  • Przegląd aktualnego rozwiązania (323)
  • Uproszczenia po wprowadzeniu interfejsu java.util.Iterator (325)
  • Wzorzec Iterator - definicja (328)
  • Struktura wzorca Iterator (329)
  • Reguła pojedynczej odpowiedzialności (330)
  • Poznajemy interfejs Iterable (333)
  • Usprawniona pętla for Javy (334)
  • Rzut oka na klasę ObiadManiaMenu (337)
  • Iteratory i kolekcje (343)
  • Czy kelnerka jest już gotowa? (345)
  • Wzorzec Kompozyt (350)
  • Projektujemy menu bazujące na wzorcu Kompozyt (353)
  • Implementacja klasy MenuSkładnik (354)
  • Implementacja klasy PozycjaMenu (355)
  • Implementacja klasy Menu (356)
  • A teraz testujemy... (359)
  • Twoja projektowa skrzynka narzędziowa (365)

ROZDZIAŁ 10. Wzorzec Stan. Stan obiektu

  • Guma do żucia i Java (370)
  • Maszyny stanowe 101 (372)
  • Piszemy kod (374)
  • Test wewnętrzny (376)
  • Wiedziałeś, że to jest blisko... prośba o zmianę! (378)
  • Kłopotliwy stan rzeczy (380)
  • Nowy projekt (382)
  • Definiowanie interfejsów i klas reprezentacji stanu (383)
  • Nowa wersja automatu sprzedającego (386)
  • Przyjrzyjmy się nowej klasie AutomatSprzedający... (387)
  • Implementowanie kolejnych stanów (388)
  • Definicja wzorca Stan (394)
  • Została jeszcze promocja 1 z 10 (397)
  • Kończymy implementowanie promocji (398)
  • Wersja demo dla prezesa (399)
  • Weryfikacja projektu... (401)
  • Niemal zapomnieliśmy! (404)
  • Twoja projektowa skrzynka narzędziowa (407)

ROZDZIAŁ 11. Wzorzec Pośrednik. Kontrola dostępu do obiektu

  • Kod monitora (415)
  • Testowanie monitora (416)
  • Zdalne wywołania metod 101 (421)
  • Przygotowanie klasy AutomatSprzedający do pracy w charakterze usługi zdalnej (434)
  • Dodanie wpisu do rejestru RMI... (436)
  • Definicja wzorca Pośrednik (443)
  • Przygotuj się na pośrednika wirtualnego (445)
  • Projektowanie wirtualnego pośrednika do wyświetlania okładek (447)
  • Kod klasy PośrednikObrazków (448)
  • Wykorzystanie mechanizmów Java API do stworzenia pośrednika chroniącego (457)
  • Swatanie w Obiektowie (458)
  • Implementacja interfejsu Osoba (459)
  • Teatrzyk - ochrona podmiotów (461)
  • Z lotu ptaka - budowanie dynamicznego pośrednika klasy Osoba (462)
  • Zoo pośredników (470)
  • Twoja projektowa skrzynka narzędziowa (472)
  • Kod przeglądarki okładek (475)

ROZDZIAŁ 12. Wzorce złożone. Łączenie wzorców

  • Współdziałanie wzorców (480)
  • Powrót kaczek (481)
  • Co zrobiliśmy? (503)
  • Widok z lotu kaczki - diagram klas (504)
  • Król wzorców złożonych (506)
  • Poznajemy wzorzec Model-Widok-Kontroler (509)
  • Przyjrzyjmy się bliżej... (510)
  • Model-Widok-Kontroler jako zestaw wzorców (512)
  • Wykorzystujemy MVC do sterowania beatem... (514)
  • Piszemy kod elementów (517)
  • A teraz spójrzmy na rzeczywistą klasę BeatModel (518)
  • Widok (519)
  • Implementowanie widoku (520)
  • A teraz kontroler (522)
  • Łączymy wszystko w całość... (524)
  • Eksplorujemy możliwości wzorca Strategia (525)
  • Adaptowanie modelu (526)
  • Testujemy... (528)
  • Twoja projektowa skrzynka narzędziowa (531)

ROZDZIAŁ 13. Lepsze życie dzięki wzorcom. Wzorce projektowe w praktyce

  • Wzorzec projektowy - definicja (551)
  • Bliższe spojrzenie na definicję wzorca (553)
  • Niech moc będzie z Tobą (554)
  • A więc chcesz zostać autorem wzorców projektowych (559)
  • Porządkowanie wzorców projektowych (561)
  • Myślenie wzorcami (566)
  • Głowa pełna wzorców (569)
  • Nie zapominaj o potędze wspólnego słownictwa (571)
  • Gang Czterech w Obiektowie (573)
  • Podróż dopiero się zaczyna... (574)
  • Zoo pełne wzorców (576)
  • Walka ze złem przy użyciu antywzorców (578)
  • Twoja projektowa skrzynka narzędziowa (580)
  • Wyjeżdżamy z Obiektowa (581)

DODATEK: Pozostałe wzorce

  • Most (584)
  • Budowniczy (586)
  • Łańcuch Odpowiedzialności (588)
  • Pyłek (590)
  • Interpreter (592)
  • Mediator (594)
  • Memento (596)
  • Prototyp (598)
  • Odwiedzający (600)

Skorowidz (602)

  • Tytuł: Wzorce projektowe. Rusz głową! Tworzenie rozszerzalnego i łatwego w utrzymaniu oprogramowania obiektowego. Wydanie II
  • Autor: Eric Freeman, Elisabeth Robson
  • Tytuł oryginału: Head First Design Patterns: Building Extensible and Maintainable Object-Oriented Software, 2nd Edition
  • Tłumaczenie: Piotr Rajca, Grzegorz Kowalczyk, Paweł Koronkiewicz
  • ISBN: 978-83-8322-905-8, 9788383229058
  • Data wydania: 2021-12-29
  • Format: Ebook
  • Identyfikator pozycji: wzor2v
  • Wydawca: Helion