wzorce projektowe. rusz głową! tworzenie rozszerzalnego i łatwego w utrzymaniu oprogramowania obiektowego. wydanie ii full.pdf
(
42885 KB
)
Pobierz
Tytuł oryginału: Head First Design Patterns: Building Extensible and Maintainable
Object-Oriented Software, 2nd Edition
Tłumaczenie: Piotr Rajca na podstawie „Wzorce projektowe. Rusz głową!”
w tłumaczeniu Grzegorza Kowalczyka i Pawła Koronkiewicza
ISBN: 978-83-283-7875-9
© 2022 Helion S.A.
Authorized Polish translation of the English edition Head First Design Patterns, 2nd Edition
ISBN 9781492078005 © 2021 Eric Freeman and Elisabeth Robson.
This translation is published and sold by permission of O’Reilly Media, Inc., which owns
or controls all rights to publish and sell the same.
Java and all Java-based trademarks and logos are tademarks or registered trademarks of Sun
Microsystems, Inc., in the United States and other countries.
All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means,
electronic or mechanical, including photocopying, recording or by any information storage retrieval system,
without permission from the Publisher.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji
w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną, a także kopiowanie
książki na nośniku filmowym, magnetycznym lub innym powoduje naruszenie praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.
Autor oraz wydawca dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne i rzetelne.
Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym ewentualne naruszenie
praw patentowych lub autorskich. Autor oraz wydawca nie ponoszą również żadnej odpowiedzialności za ewentualne
szkody wynikłe z wykorzystania informacji zawartych w książce.
Helion S.A.
ul. Kościuszki 1c, 44-100 Gliwice
tel. 32 231 22 19, 32 230 98 63
e-mail:
helion@helion.pl
WWW:
http://helion.pl
(księgarnia internetowa, katalog książek)
Pliki z przykładami omawianymi w książce można znaleźć pod adresem:
https://ftp.helion.pl/przyklady/wzorg2.zip
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/wzorg2
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Printed in Poland.
•
Kup książkę
•
Poleć książkę
•
Oceń książkę
•
Księgarnia internetowa
•
Lubię to! » Nasza społeczność
1
Wprowadzenie do wzorców projektowych
Witamy w krainie wzorców projektowych
Ktoś rozwiązał już Twoje problemy.
W tym rozdziale dowiesz się, dlaczego (i w jaki sposób)
możesz wykorzystać wiedzę i doświadczenia zdobyte przez innych programistów, którzy
podążali tą samą ścieżką projektową i — co najważniejsze — udało im się przeżyć taką wyprawę.
Zanim dobrniemy do końca rozdziału, rzucimy okiem na sposoby wykorzystywania wzorców
projektowych i przedstawimy ich zalety, poznamy kilka podstawowych zasad projektowania
obiektowego, a także omówimy sposób działania przykładowego wzorca. Najlepszą metodą
zastosowania wzorca jest
załadowanie go bezpośrednio do Twojego mózgu,
a następnie
zlokalizowanie obszarów
w obrębie projektowanych rozwiązań oraz istniejących aplikacji,
w których możesz
je zastosować.
Pracując z wzorcami projektowymi, zamiast wielokrotnego
wykorzystywania
kodu
wielokrotnie wykorzystujesz swoje
doświadczenia.
Wszystko rozpoczęło się od prostej aplikacji o nazwie KaczySim
Ale teraz nasze kaczki muszą LATAĆ
2
3
4
5
6
7
8
9
10
11
13
15
18
20
22
23
24
26
27
28
29
32
Pamiętaj, opanowanie
takich zagadnień, jak
abstrakcyjność, dziedziczenie i polimorfizm,
nie zrobi z Ciebie dobrego projektanta
oprogramowania obiektowego. Prawdziwy guru
zawsze myśli o stworzeniu elastycznego projektu,
który będzie łatwy do utrzymania i będzie sobie
w stanie poradzić ze zmieniającymi się
warunkami.
Ale coś poszło strasznie nie tak…
Józek rozmyśla o dziedziczeniu…
A może by tak interfejs?
Co byś zrobił na miejscu Józka?
Jedyny pewny element procesu wytwarzania oprogramowania
Zerowanie problemu…
Oddzielanie tego, co się zmienia, od tego, co pozostaje niezmienione
Projektowanie zachowań Kaczki
Implementacja zachowań klasy Kaczka
Integracja zachowań klasy Kaczka
Testowanie kodu klasy Kaczka
Dynamiczne ustawianie zachowania
Kompletny diagram hermetyzowanych zachowań
Relacja MA może być lepsza od JEST
Rozmawiając o wzorcach projektowych…
Zasłyszane w lokalnym barze szybkiej obsługi…
ania
e zachow
nia
yzowan
lata
Hermet
sobem
e ze spo
związan
>>
<< interfejs
Latanie
leć()
Interfejs
MÓZG
Twój
Grupa wzorców projekt
owych
Zasłyszane w sąsiednim boksie
Potęga wspólnego słownika wzorców
W jaki sposób mogę używać wzorców projektowych?
Narzędzia do Twojej projektowej skrzynki narzędziowej
NieLata
LatamB
krzydła
oMamS
m
Klient
terfejs
latanieIn
s
nterfejs
eInterfej
LatanieI
js kwakani
ieInterfe
Kwakan
Kaczka
leć() {
entacja sposobu
// implem
}
latania kaczki
leć() {
umiem
nic — nie
// nie rób
latać }
płyń()
wyświetl()
wykonajKwacz()
zane ze
owania zwią
owane zach kwakania
Hermetyz
sposobem
>>
<< interfejs
ejs
ieInterf
Kwakan
kwacz()
wykonajLeć()
erfejs()
ustawLatanieInt terfejs()
akanieIn
…
ustawKw
kaczkopodobne
// INNE metody
NieKwa
Piszcz
Kwacz
aczka
kwacz() {
entacja sposobu }
// implem
j kaczki
ia gumowe
piszczen
cz
Obiekt
ze stanem.
czka
KrzyżówkaKa
{
wyświetl()
jak kaczka
// wygląda
}
krzyżówka
osKaczka
Płaskon
{
wyświetl()
jak
// wygląda
}
płaskonos
aKaczka
Gumow
{
wyświetl()
jak gumowa
// wygląda
kaczka }
WabikK
{
wyświetl()
jak wabik
// wygląda
}
na kaczki
kwacz() {
entacja sposobu
// implem
kaczki }
kwakania
kwacz() {
kaczka
nic — ta
// nie rób
}
nie kwacze
8
ek
8
8
8
8
Ob
zk
iekt
Kac
a
Ob
zależne
Obiekty
t
obser
w
o
w
a
liczba
całkowita
ny
Ob
iekt
Pies
Automatyczna aktualizacja
(powiadamianie)
Kup książkę
Ob
i
iekt
Kot
MVC
Mod
el
Ob
z
iekt
Mys
r
rolle
Co
nt
Obiekty obserwujące
est
Requ
W id
ok
całkiem
teraz już
Twój kod, awiony dzięki
popr
nowy i
iu wzorców
zastosowan h!
ojektowyc
pr
xi
Poleć książkę
Spis
treści
2
Wzorzec Obserwator
Jak sprawić, by Twoje obiekty były zawsze dobrze
poinformowane
Nie chcesz przegapić żadnego momentu, kiedy dzieje się coś naprawdę ciekawego,
prawda?
Istnieje pewien wzorzec, który potrafi
poinformować
inne obiekty o tym, że wydarzyło
się coś, co je
interesuje
— to wzorzec Obserwator (ang.
Observer).
Jest on jednym z najczęściej
używanych wzorców projektowych i jest wręcz niewiarygodnie użyteczny. W niniejszym rozdziale
przyjrzymy się wszystkim interesującym aspektom tego wzorca, takim jak
relacje typu jeden-do-
wielu
oraz
luźne powiązania.
A kiedy już poznasz te wszystkie zagadnienia, będziemy się mogli
zastanowić, w jaki sposób wzorzec Obserwator może nam ułatwić życie w kontekście organizacji
spotkania grupy użytkowników wzorców projektowych.
Ogólne spojrzenie na aplikację monitorującą warunki pogodowe
37
42
43
49
52
55
56
59
63
64
67
69
70
71
Podstawy
ania
programow
i
m
to
an
go
ob
a
ek
ow
we
ia
gr
Reguły pro
Abstrakcyjność
o
obiektoweg
Hermetyzacja
.
zmienia
to, co
o
się
orfizm
ermetyzuj
P lim
nad
H
kompozycję
enie
Przedkładajie.
Dziedzicz
dziedziczen
eniu
się na tworz
.
Koncentruj , a nie implementacji
ejsów
interf
jekty,
tworzyć pro
Staraj się omiędzy
w których p jącymi obiektami
współdziałaluźne powiązania.
występują
Spotkanie ze wzorcem Obserwator
Wydawca + prenumeratorzy = wzorzec Obserwator
Definicja wzorca Obserwator
Siła luźnych powiązań
Projektowanie stacji meteorologicznej
Implementacja stacji meteorologicznej
Włączamy zasilanie stacji meteorologicznej
Podglądanie wzorca Obserwator w naturze
Pisanie kodu aplikacji, która odmieni nasze życie
Wróćmy do prac nad aplikacją meteorologiczną
Jazda próbna nowego kodu
Twoja projektowa skrzynka narzędziowa
Reguły projektowe — wyzwanie
RELACJA JEDEN-DO-WIELU
Obiekt
ze stanem.
8
ek
y
liczba
całkowita
8
8
8
Ob
iekt
Pies
Ob
a
s
e
r
wow
8
zk
iekt
Kac
Ob
iekt
Kot
Automatyczna aktualizacja
(powiadamianie)
Ob
iekt
Mys
z
Obiekty obserwujące
xii
Kup książkę
Poleć książkę
Obiekt
y zale
żne
t
ob
an
Ob
i
3
Wzorzec Dekorator
Dekorowanie obiektów
W zasadzie niniejszy rozdział moglibyśmy zatytułować „Otwieranie oczu programistom
zapatrzonym w dziedziczenie”.
W tym rozdziale spróbujemy się krytycznie przyjrzeć
zwyczajowym skłonnościom do nadużywania mechanizmu dziedziczenia oraz nauczymy Cię
sposobów dekorowania klas w czasie działania programu przy użyciu pewnej formy kompozycji
obiektów. Dlaczego? Po zapoznaniu się z technikami dekorowania klas będziesz mógł wyposażać
swoje (i nie tylko) obiekty w nowe możliwości
bez konieczności wprowadzania jakichkolwiek
modyfikacji w kodzie używanych klas.
Zawsze sądziłem, że prawdziwi
mężczyźni tworzą klasy podrzędne ze
wszystkiego, co się tylko do tego nadaje.
Tak było — do czasu, gdy dowiedziałem
się o korzyściach, jakie niesie możliwość
rozszerzania możliwości aplikacji w trakcie jej
działania, a nie w czasie kompilacji kodu.
A teraz — spójrzcie tylko na mnie!
Witamy w „Star Café”
Reguła otwarte-zamknięte
Spotkanie z wzorcem Dekorator
Konstruowanie zamówień przy użyciu dekoratorów
Definicja wzorca Dekorator
Dekorujemy nasze napoje
Tworzymy kod aplikacji „Star Café”
Tworzenie klas napojów
Tworzenie kodu klas dodatków
Podajemy kawy
Dekoratory w świecie rzeczywistym: obsługa wejścia-wyjścia
w języku Java
Dekorowanie klas pakietu java.io
Tworzenie własnych dekoratorów obsługi wejścia-wyjścia
Testowanie nowego dekoratora strumieni wejścia-wyjścia
Twoja projektowa skrzynka narzędziowa
76
82
84
85
87
88
91
92
93
94
96
97
98
99
101
xiii
Kup książkę
Poleć książkę
Plik z chomika:
KINO-HITY
Inne pliki z tego folderu:
po-prostu-keto!-jak-skutecznie-poprawic-zdrowie-i-odzyskac-piekna-sylwetke full.pdf
(8662 KB)
tajniki-zwiekszania-ruchu.-sekretny-podrecznik-napelniania-lejkow-sprzedazowych-najlepszymi-klientami scan.pdf
(27264 KB)
Paulina Popiela klan wojowników full scan.pdf
(3636 KB)
Joanna Mazur madera. travelbook. wydanie 4 scan.pdf
(40289 KB)
linie na twarzy babuni full.pdf
(5476 KB)
Inne foldery tego chomika:
2023 różne
AUDIOBOOKI
AUDIOBOOKI profesjonalny lektor
Audioteka
cotywieszoczytaniu
Zgłoś jeśli
naruszono regulamin