C_Wzorce_projektowe_cshwzo.pdf

(278 KB) Pobierz
IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TREŒCI
C#. Wzorce
projektowe
Autor: Steven John Metsker
T³umaczenie: Zbigniew Banach, Krzysztof Trawiñski
ISBN: 83-7361-936-4
Tytu³ orygina³u:
Design Patterns in C#
Format: B5, stron: 416
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
DODAJ DO KOSZYKA
Wzorce projektowe s¹ modelami gotowych rozwi¹zañ problemów programistycznych,
przed jakimi czêsto staj¹ twórcy oprogramowania. Dziêki nim nie musimy ponownie
„wymyœlaæ ko³a”. Dysponuj¹c wzorcami projektowymi, jesteœmy w stanie szybciej
i efektywniej zbudowaæ aplikacjê, poniewa¿ koncentrujemy siê na samej implementacji
algorytmu, a nie na jego opracowaniu. Najczêœciej stosowane, klasyczne ju¿, 23 wzorce
projektowe opracowane przez twórców notacji UML implementowano ju¿ w wielu
jêzykach programowania. Jak sprawdz¹ siê w po³¹czeniu z jedn¹ z najnowszych
technologii, jak¹ jest .NET?
„C#. Wzorce projektowe” to kompletny przewodnik po wzorcach projektowych w C#
i œrodowisku .NET. Przedstawia sposoby wykorzystania obiektowych cech jêzyka C#
i tworzenia eleganckiego kodu poprzez zastosowanie wzorców projektowych oraz
korzystanie z ogromnych mo¿liwoœci oferowanych przez biblioteki klas FCL dla
œrodowiska Microsoft .NET. Wszystkie przedstawione w ksi¹¿ce wzorce projektowe
zosta³y zilustrowane przyk³adami kodu oraz diagramami UML, co u³atwia ich
zrozumienie oraz zastosowanie w praktyce.
• Podstawowe wiadomoœci o wzorcach projektowych
• Interfejsy i klasy abstrakcyjne
• Wzorce interfejsów
• Wzorce odpowiedzialnoœci
• Wzorce konstrukcyjne
• Wprowadzenie do operacji
• Wzorce operacji
• Wzorce rozszerzeñ
• Wzorce rozszerzaj¹ce
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Poznaj zastosowanie wzorców projektowych
i wykorzystaj je w swojej pracy
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWOŒCIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Spis treści
Wprowadzenie ................................................................................................13
1.
Wstęp ..............................................................................................................15
Dlaczego wzorce? ..................................................................................................................................15
Dlaczego wzorce projektowe? ................................................................................................................16
Dlaczego C#? .........................................................................................................................................16
UML .......................................................................................................................................................17
Zadania ...................................................................................................................................................17
Układ książki ..........................................................................................................................................18
Witamy w firmie Oozinoz! .....................................................................................................................19
Podsumowanie .......................................................................................................................................19
I
WZORCE INTERFEJSÓW ..................................................................................21
2.
Wprowadzenie do interfejsów ........................................................................23
Interfejsy a klasy abstrakcyjne ...............................................................................................................23
Interfejsy a delegacje ..............................................................................................................................24
Interfejsy a właściwości .........................................................................................................................28
Szczegóły interfejsów ............................................................................................................................28
Podsumowanie .......................................................................................................................................29
Poza zwykłe interfejsy ...........................................................................................................................29
3.
Adapter ...........................................................................................................31
Adaptacja kodu do potrzeb interfejsu .....................................................................................................31
Adaptery klas i obiektów ........................................................................................................................34
6
SPIS TREŚCI
Adaptacja danych w .NET ......................................................................................................................37
Podsumowanie .......................................................................................................................................41
4.
Facade (Fasada) ..............................................................................................43
Zwykła fasada ........................................................................................................................................43
Refaktoryzacja do postaci fasady ...........................................................................................................45
Fasady, klasy narzędziowe i demonstracje .............................................................................................54
Podsumowanie .......................................................................................................................................55
5.
Composite (Kompozyt) ..................................................................................57
Zwykły kompozyt ..................................................................................................................................57
Rekurencja w kompozytach ...................................................................................................................58
Kompozyty, drzewa i cykle ....................................................................................................................59
Kompozyty z cyklami ............................................................................................................................64
Konsekwencje cykli ...............................................................................................................................67
Podsumowanie .......................................................................................................................................67
6.
Bridge (Pomost) .............................................................................................69
Zwykła abstrakcja ..................................................................................................................................69
Od abstrakcji do pomostu .......................................................................................................................71
Sterowniki jako pomosty ........................................................................................................................73
Sterowniki baz danych ...........................................................................................................................73
Podsumowanie .......................................................................................................................................74
II
WZORCE ODPOWIEDZIALNOŚCI ..................................................................75
7.
Pojęcie odpowiedzialności .............................................................................77
Zwykła odpowiedzialność ......................................................................................................................77
Kontrola odpowiedzialności poprzez kontrolę dostępu ..........................................................................79
Podsumowanie .......................................................................................................................................81
Poza zwykłą odpowiedzialność ..............................................................................................................82
8.
Singleton .........................................................................................................83
Zasada działania wzorca Singleton ........................................................................................................83
Singletony a wątki ..................................................................................................................................84
Rozpoznawanie singletonów ..................................................................................................................86
Podsumowanie .......................................................................................................................................86
SPIS TREŚCI
7
9.
Observer (Obserwator) ...................................................................................87
Obsługa wzorca Observer w C# .............................................................................................................87
Sposób działania delegacji .....................................................................................................................88
GUI — klasyczny przykład obserwacji ..................................................................................................91
Model-View-Controller ..........................................................................................................................97
Warstwy .................................................................................................................................................99
Podsumowanie .....................................................................................................................................103
10.
Mediator .......................................................................................................105
Klasyczny przykład: mediacja w GUI ..................................................................................................105
Mediatorzy integralności relacji ...........................................................................................................109
Podsumowanie .....................................................................................................................................115
11.
Proxy (Pośrednik) .........................................................................................117
Prosty pośrednik ...................................................................................................................................117
Pośrednik danych .................................................................................................................................121
Zdalny pośrednik ..................................................................................................................................126
Podsumowanie .....................................................................................................................................130
12.
Chain of Responsibility (Łańcuch odpowiedzialności) ...............................131
Zwykły
łańcuch
odpowiedzialności .....................................................................................................131
Wprowadzanie
łańcucha
odpowiedzialności ........................................................................................132
Zaczepianie
łańcucha
...........................................................................................................................135
Łańcuch
odpowiedzialności bez kompozytów .....................................................................................137
Podsumowanie .....................................................................................................................................137
13.
Flyweight (Waga piórkowa) .........................................................................139
Niezmienność .......................................................................................................................................139
Wydzielenie niezmiennej części obiektu ..............................................................................................140
Współużytkowanie obiektów ...............................................................................................................141
Podsumowanie .....................................................................................................................................145
8
SPIS TREŚCI
III
WZORCE KONSTRUKCYJNE ........................................................................147
14.
Pojęcie konstrukcji .......................................................................................149
Kilka zadań konstrukcyjnych ...............................................................................................................149
Podsumowanie .....................................................................................................................................152
Poza zwykłą konstrukcję ......................................................................................................................152
15.
Builder (Budowniczy) ..................................................................................153
Zwykły budowniczy .............................................................................................................................153
Budowanie z ograniczeniami ...............................................................................................................155
Pobłażliwy budowniczy .......................................................................................................................157
Podsumowanie .....................................................................................................................................158
16.
Factory Method (Metoda fabrykująca) ........................................................159
Klasyczny przykład: enumeratory ........................................................................................................159
Rozpoznawanie wzorca Factory Method .............................................................................................161
Kontrola wyboru klasy .........................................................................................................................161
Metody fabryczne w hierarchiach równoległych ..................................................................................163
Podsumowanie .....................................................................................................................................164
17.
Abstract Factory (Fabryka abstrakcji) ..........................................................167
Klasyczny przykład: zestawy GUI .......................................................................................................167
Fabryki abstrakcji a metody fabrykujące ..............................................................................................172
Przestrzenie nazw a fabryki abstrakcji .................................................................................................175
Podsumowanie .....................................................................................................................................175
18.
Prototype (Prototyp) .....................................................................................177
Prototypy jako fabryki ..........................................................................................................................177
Klonowanie prototypów .......................................................................................................................178
Podsumowanie .....................................................................................................................................181
19.
Memento .......................................................................................................183
Klasyczny przykład: cofnięcie ostatniej czynności ..............................................................................183
Trwałe memento ...................................................................................................................................190
Zgłoś jeśli naruszono regulamin