Wzorce_projektowe_Elementy_oprogramowania_obiektowego_wielokrotnego_uzytku_wzoelv.pdf

(3515 KB) Pobierz
Tytuł oryginału: Design Patterns
Tłumaczenie: Tomasz Walczak
Projekt okładki: Studio Gravite / Olsztyn;
Obarek, Pokoński, Pazdrijowski, Zaprucki
ISBN: 978-83-283-3313-0
Authorized translation from the English language edition, entitled: Design Patterns, First Edition, ISBN
0201633612, by Erich Gamma; and Richard Helm, published by Pearson Education, Inc, publishing as
Addison-Wesley Professional; Copyright © 1995 by Addison-Wesley.
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 Pearson Education Inc.
Material from A Pattern Language: Towns/Buildings/Construction by Christopher Alexander,
copyright © 1977 by Christopher Alexander is reprinted by permission of Oxford University Press, Inc.
Polish language edition published by Helion SA
Copyright © 2010, 2017
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 Wydawnictwo HELION 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 Wydawnictwo HELION nie ponoszą również żadnej
odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce.
Materiały graficzne na okładce zostały wykorzystane za zgodą iStockPhoto Inc.
Wydawnictwo HELION
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)
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/wzoelv
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ść
S
PIS TRE¥CI
Przedmowa ............................................................................................................................. 9
WstÚp ..................................................................................................................................... 11
Przewodnik dla Czytelników ............................................................................................ 13
Rozdziaï 1.
Wprowadzenie ..................................................................................................................... 15
1.1. Czym jest wzorzec projektowy? ................................................................................. 16
1.2. Wzorce projektowe w architekturze MVC w jÚzyku Smalltalk ............................. 18
1.3. Opisywanie wzorców projektowych ......................................................................... 20
1.4. Katalog wzorców projektowych ................................................................................. 22
1.5. Struktura katalogu ........................................................................................................ 24
1.6. Jak wzorce pomagajÈ rozwiÈzaÊ problemy projektowe? ....................................... 26
1.7. Jak wybraÊ wzorzec projektowy? ............................................................................... 42
1.8. Jak stosowaÊ wzorce projektowe? .............................................................................. 43
Studium przypadku — projektowanie edytora dokumentów ................................... 45
2.1. Problemy projektowe ................................................................................................... 45
2.2. Struktura dokumentu ................................................................................................... 47
2.3. Formatowanie ................................................................................................................ 52
2.4. Ozdabianie interfejsu u ytkownika ........................................................................... 55
2.5. Obsïuga wielu standardów wyglÈdu i dziaïania ..................................................... 59
2.6. Obsïuga wielu systemów okienkowych .................................................................... 63
2.7. Dziaïania u ytkowników ............................................................................................. 69
2.8. Sprawdzanie pisowni i podziaï sïów ......................................................................... 74
2.9. Podsumowanie .............................................................................................................. 86
Wzorce konstrukcyjne ........................................................................................................ 87
Rozdziaï 2.
Rozdziaï 3.
BUDOWNICZY (BUILDER) ....................................................................................... 92
FABRYKA ABSTRAKCYJNA (ABSTRACT FACTORY) ..................................... 101
METODA WYTWÓRCZA ........................................................................................ 110
PROTOTYP (PROTOTYPE) ..................................................................................... 120
SINGLETON (SINGLETON) .................................................................................... 130
Omówienie wzorców konstrukcyjnych ......................................................................... 137
Kup książkę
Poleć książkę
8
SPIS TRE¥CI
Rozdziaï 4.
Wzorce strukturalne .......................................................................................................... 139
ADAPTER (ADAPTER) ............................................................................................ 141
DEKORATOR (DECORATOR) ................................................................................ 152
FASADA (FACADE) ................................................................................................. 161
KOMPOZYT (COMPOSITE) .................................................................................... 170
MOST (BRIDGE) ....................................................................................................... 181
PEàNOMOCNIK (PROXY) ....................................................................................... 191
PYàEK (FLYWEIGHT) ............................................................................................. 201
Omówienie wzorców strukturalnych ............................................................................. 213
Rozdziaï 5.
Wzorce operacyjne ............................................................................................................ 215
INTERPRETER (INTERPRETER) ............................................................................ 217
ITERATOR (ITERATOR) .......................................................................................... 230
àA CUCH ZOBOWI ZA (CHAIN OF RESPONSIBILITY) ................................... 244
MEDIATOR (MEDIATOR) ....................................................................................... 254
METODA SZABLONOWA (TEMPLATE METHOD) ............................................ 264
OBSERWATOR (OBSERVER) ................................................................................. 269
ODWIEDZAJ CY (VISITOR) .................................................................................. 280
PAMI TKA (MEMENTO) ........................................................................................ 294
POLECENIE (COMMAND) ...................................................................................... 302
STAN (STATE) .......................................................................................................... 312
STRATEGIA (STRATEGY) ...................................................................................... 321
Omówienie wzorców operacyjnych ............................................................................... 330
Rozdziaï 6.
Podsumowanie ................................................................................................................... 335
6.1. Czego mo na oczekiwaÊ od wzorców projektowych? ......................................... 335
6.2. Krótka historia ............................................................................................................. 339
6.3. Spoïeczno Ê zwiÈzana ze wzorcami ......................................................................... 340
6.4. Zaproszenie .................................................................................................................. 342
6.5. Sïowo na zakoñczenie ................................................................................................ 342
Sïowniczek .......................................................................................................................... 343
Przewodnik po notacji ...................................................................................................... 347
B.1. Diagram klas ................................................................................................................ 347
B.2. Diagram obiektów ...................................................................................................... 349
B.3. Diagram interakcji ...................................................................................................... 350
Klasy podstawowe ............................................................................................................. 351
C.1. List ................................................................................................................................. 351
C.2. Iterator .......................................................................................................................... 354
C.3. ListIterator ................................................................................................................... 354
C.4. Point .............................................................................................................................. 355
C.5. Rect ............................................................................................................................... 355
Bibliografia ......................................................................................................................... 357
Skorowidz ........................................................................................................................... 363
Dodatek A
Dodatek B
Dodatek C
Kup książkę
Poleć książkę
R
OZDZIA
3.
Wzorce konstrukcyjne
Konstrukcyjne wzorce projektowe pozwalajÈ ujÈÊ w abstrakcyjnej formie proces tworzenia
egzemplarzy klas. PomagajÈ zachowaÊ niezale no Ê systemu od sposobu tworzenia, skïadania
i reprezentowania obiektów. Klasowe wzorce konstrukcyjne sÈ oparte na dziedziczeniu i sïu È
do modyfikowania klas, których egzemplarze sÈ tworzone. W obiektowych wzorcach kon-
strukcyjnych tworzenie egzemplarzy jest delegowane do innego obiektu.
Wzorce konstrukcyjne zyskujÈ na znaczeniu wraz z coraz czÚstszym zastÚpowaniem w syste-
mach dziedziczenia klas skïadaniem obiektów. Powoduje to, e programi ci kïadÈ mniejszy
nacisk na trwaïe zapisywanie w kodzie okre lonego zestawu zachowañ, a wiÚkszy — na defi-
niowanie mniejszego zbioru podstawowych dziaïañ, które mo na poïÈczyÊ w dowolnÈ liczbÚ
bardziej zïo onych zachowañ. Dlatego tworzenie obiektów o okre lonych zachowaniach wy-
maga czego wiÚcej ni prostego utworzenia egzemplarza klasy.
We wzorcach z tego rozdziaïu powtarzajÈ siÚ dwa motywy. Po pierwsze, wszystkie te wzorce
kapsuïkujÈ informacje o tym, z których klas konkretnych korzysta system. Po drugie, ukry-
wajÈ proces tworzenia i skïadania egzemplarzy tych klas. System zna tylko interfejsy obiektów
zdefiniowane w klasach abstrakcyjnych. Oznacza to, e wzorce konstrukcyjne dajÈ du È ela-
styczno Ê w zakresie tego,
co
jest tworzone,
kto
to robi,
jak
przebiega ten proces i
kiedy
ma miejsce.
Umo liwiajÈ skonfigurowanie systemu z obiektami-produktami o bardzo zró nicowanych
strukturach i funkcjach. Konfigurowanie mo e przebiegaÊ statycznie (w czasie kompilacji) lub
dynamicznie (w czasie wykonywania programu).
Niektóre wzorce konstrukcyjne sÈ dla siebie konkurencjÈ. Na przykïad w niektórych warunkach
mo na z po ytkiem zastosowaÊ zarówno wzorzec Prototyp (s. 120), jak i Fabryka abstrakcyjna
(s. 101). W innych przypadkach wzorce siÚ uzupeïniajÈ. We wzorcu Budowniczy (s. 92) mo na
wykorzystaÊ jeden z pozostaïych wzorców do okre lenia, które komponenty zostanÈ zbudowane,
a do zaimplementowania wzorca Prototyp (s. 120) mo na u yÊ wzorca Singleton (s. 130).
Poniewa wzorce konstrukcyjne sÈ mocno powiÈzane ze sobÈ, przeanalizujemy caïÈ ich piÈtkÚ
razem, aby podkre liÊ podobieñstwa i ró nice miÚdzy nimi. Wykorzystamy te jeden przykïad
do zilustrowania implementacji tych wzorców — tworzenie labiryntu na potrzeby gry kom-
puterowej. Labirynt i gra bÚdÈ nieco odmienne w poszczególnych wzorcach. Czasem celem
gry bÚdzie po prostu znalezienie wyj cia z labiryntu. W tej wersji gracz prawdopodobnie bÚdzie
Kup książkę
Poleć książkę
Zgłoś jeśli naruszono regulamin