Helion


Szczegóły ebooka

Wzorce implementacyjne

Wzorce implementacyjne


Sprawdzone rozwiązania Twoich problemów!

Przy nauce programowania warto uczyć się na cudzych błędach. Programiści tworzący aplikację codziennie natykają się na przeróżne problemy oraz zagadnienia do rozwiązania. Rzadko jednak zdarza się, żeby były one wyjątkowe i niespotykane wcześniej. Jeżeli masz problem, możesz być prawie pewien, że ktoś też już go miał - i w dodatku rozwiązał. Właśnie w ten sposób powstały wzorce, które w jasny sposób opisują sposoby rozwiązywania typowych problemów.

W tej książce znajdziesz 77 wzorców, które pozwolą Ci uniknąć wielu pułapek oraz rozwiązać najczęściej spotykane problemy. W trakcie lektury dowiesz się, w jaki sposób przechowywać stan oraz gdzie umieścić logikę Twojej aplikacji. Ponadto poznasz najefektywniejsze sposoby sterowania przebiegiem programu oraz wybierzesz rodzaj kolekcji odpowiedni do Twoich potrzeb. Nauczysz się dobierać właściwe nazwy dla zmiennych i metod oraz przekonasz się, że można sprawnie opanować wysyp wyjątków. Książka ta jest obowiązkową lekturą każdego programisty. Dzięki niej Twoje życie stanie się prostsze, a Twoje oprogramowanie bardziej przejrzyste!

Dzięki tej książce:

  • poznasz 77 przydatnych wzorców
  • wybierzesz odpowiedni typ kolekcji w zależności od problemu
  • zaprojektujesz przejrzystą hierarchię klas
  • zbudujesz lepszą i bardziej niezawodną aplikację

Poznaj najlepsze wzorce, które ulepszą Twoje oprogramowanie!

Wstęp (11)

  • Podziękowania (12)

Rozdział 1. Wprowadzenie (13)

  • Przewodnik (15)
  • A teraz... (16)

Rozdział 2. Wzorce (17)

Rozdział 3. Teoria programowania (21)

  • Wartości (22)
    • Komunikatywność (22)
    • Prostota (23)
    • Elastyczność (24)
  • Zasady (25)
    • Lokalne konsekwencje (26)
    • Minimalizacja powtórzeń (26)
    • Połączenie logiki i danych (27)
    • Symetria (27)
    • Przekaz deklaratywny (28)
    • Tempo zmian (29)
  • Wnioski (30)

Rozdział 4. Motywacja (31)

Rozdział 5. Klasy (33)

  • Klasa (34)
  • Prosta nazwa klasy bazowej (35)
  • Kwalifikowana nazwa klasy pochodnej (36)
  • Interfejs abstrakcyjny (37)
  • Interfejs (38)
  • Klasa abstrakcyjna (39)
  • Interfejs wersjonowany (40)
  • Obiekt wartościowy (41)
  • Specjalizacja (43)
  • Klasa pochodna (44)
  • Implementator (46)
  • Klasa wewnętrzna (47)
  • Zachowanie zależne od instancji (48)
  • Konstrukcja warunkowa (48)
  • Delegacja (50)
  • Selektor dołączany (52)
  • Anonimowa klasa wewnętrzna (53)
  • Klasa biblioteczna (53)
  • Wniosek (54)

Rozdział 6. Stan (55)

  • Stan (56)
  • Dostęp (57)
  • Dostęp bezpośredni (58)
  • Dostęp pośredni (59)
  • Wspólny stan (60)
  • Stan zmienny (60)
  • Stan zewnętrzny (62)
  • Zmienna (62)
  • Zmienna lokalna (63)
  • Pole (65)
  • Parametr (66)
  • Parametr zbierający (67)
  • Parametr opcjonalny (68)
  • Zmienna lista argumentów (68)
  • Obiekt parametrów (69)
  • Stałe (70)
  • Nazwa sugerująca znaczenie (71)
  • Zadeklarowany typ (72)
  • Inicjalizacja (73)
  • Inicjalizacja wczesna (73)
  • Inicjalizacja leniwa (74)
  • Wniosek (75)

Rozdział 7. Zachowanie (77)

  • Przepływ sterowania (78)
  • Przepływ główny (78)
  • Komunikat (79)
  • Komunikat wybierający (80)
  • Dwukrotne przydzielanie (80)
  • Komunikat dekomponujący (sekwencjonujący) (81)
  • Komunikat odwracający (82)
  • Komunikat zapraszający (83)
  • Komunikat wyjaśniający (83)
  • Przepływ wyjątkowy (84)
  • Klauzula strażnika (84)
  • Wyjątek (86)
  • Wyjątki sprawdzane (87)
  • Propagacja wyjątków (87)
  • Wniosek (88)

Rozdział 8. Metody (89)

  • Metoda złożona (92)
  • Nazwa określająca przeznaczenie (93)
  • Widoczność metody (94)
  • Obiekt metody (96)
  • Metoda przesłonięta (98)
  • Metoda przeciążona (98)
  • Typ wynikowy metody (99)
  • Komentarz do metody (100)
  • Metoda pomocnicza (100)
  • Metoda komunikatu informacyjnego (101)
  • Konwersja (102)
  • Metoda konwertująca (102)
  • Konstruktor konwertujący (103)
  • Utworzenie (103)
  • Kompletny konstruktor (104)
  • Metoda wytwórcza (105)
  • Fabryka wewnętrzna (106)
  • Metoda dostępu do kolekcji (106)
  • Metoda określająca wartości logiczne (108)
  • Metoda zapytania (108)
  • Metoda równości (109)
  • Metoda pobierająca (110)
  • Metoda ustawiająca (111)
  • Bezpieczna kopia (112)
  • Wniosek (113)

Rozdział 9. Kolekcje (115)

  • Metafory (116)
  • Zagadnienia (117)
  • Interfejsy (119)
    • Tablice (klasa Array) (120)
    • Interfejs Iterable (120)
    • Interfejs Collection - kolekcje (121)
    • Interfejs List - listy (121)
    • Interfejs Set - zbiory (121)
    • Interfejs SortedSet - zbiory posortowane (122)
    • Interfejs Map - mapy (123)
  • Implementacje (123)
    • Implementacje interfejsu Collection (124)
    • Implementacje interfejsu List (125)
    • Implementacje interfejsu Set (125)
    • Implementacje interfejsu Map (126)
  • Klasa Collections (128)
    • Wyszukiwanie (128)
    • Sortowanie (128)
    • Kolekcje niezmienne (129)
    • Kolekcje jednoelementowe (129)
    • Kolekcje puste (129)
  • Rozszerzanie kolekcji (130)
  • Wniosek (131)

Rozdział 10. Rozwijanie platform (133)

  • Modyfikowanie platform bez zmian w aplikacjach (133)
  • Niezgodne aktualizacje (134)
  • Zachęcanie do wprowadzania zgodnych zmian (136)
    • Klasa biblioteczna (137)
    • Obiekty (137)
  • Wnioski (146)

Dodatek A. Pomiary wydajności (149)

  • Przykład (150)
  • API (150)
  • Implementacja (151)
  • Klasa MethodTimer (152)
  • Eliminacja narzutów czasowych (154)
  • Testy (154)
    • Porównywanie kolekcji (155)
    • Porównywanie kolekcji ArrayList i LinkedList (157)
    • Porównywanie zbiorów (158)
    • Porównywanie map (159)
  • Wnioski (160)

Bibliografia (163)

  • Ogólne zagadnienia programistyczne (163)
  • Filozofia (165)
  • Java (166)

Spis szablonów (167)

Skorowidz (169)