Steven John Metsker c#. wzorce projektowe scan.pdf

(7876 KB) Pobierz
887616006.018.png
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
887616006.019.png 887616006.020.png 887616006.021.png 887616006.001.png 887616006.002.png
 
7
SPIS TREŚCI
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
887616006.003.png 887616006.004.png 887616006.005.png 887616006.006.png
 
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
887616006.007.png 887616006.008.png 887616006.009.png 887616006.010.png 887616006.011.png 887616006.012.png
 
9
SPIS TREŚCI
Memento wielosesyjne .........................................................................................................................191
Podsumowanie .....................................................................................................................................193
IV
WZORCE OPERACJI ........................................................................................195
20.
Operacje — wprowadzenie ..........................................................................197
Operacje a metody ................................................................................................................................197
Sygnatury .............................................................................................................................................198
Delegacje ..............................................................................................................................................199
Wyjątki .................................................................................................................................................200
Algorytmy a polimorfizm .....................................................................................................................201
Podsumowanie .....................................................................................................................................202
Poza operacje niestandardowe ..............................................................................................................203
21.
Template Method (Metoda szablonu) ..........................................................205
Klasyczny przykład: sortowanie ...........................................................................................................205
Uzupełnianie algorytmu .......................................................................................................................208
Punkty zaczepienia w Template Method ..............................................................................................210
Refaktoryzacja do wzorca Template Method .......................................................................................211
Podsumowanie .....................................................................................................................................213
22.
State (Stan) ...................................................................................................215
Modelowanie stanów ............................................................................................................................215
Refaktoryzacja do wzorca State ...........................................................................................................218
Stałe obiekty stanu ...............................................................................................................................222
Podsumowanie .....................................................................................................................................224
23.
Strategy (Strategia) .......................................................................................225
Modelowanie strategii ..........................................................................................................................225
Refaktoryzacja do wzorca Strategy ......................................................................................................227
Porównanie wzorców Strategy i State ..................................................................................................232
Porównanie wzorców Strategy i Template Method .............................................................................. 232
Podsumowanie .....................................................................................................................................232
24.
Command (Polecenie) ..................................................................................235
Klasyczny przykład: polecenia menu ...................................................................................................235
Zastosowanie wzorca Command w usługach .......................................................................................236
887616006.013.png 887616006.014.png 887616006.015.png 887616006.016.png 887616006.017.png
 
Zgłoś jeśli naruszono regulamin