Martin Fowler architektura systemów zarządzania przedsiębiorstwem. wzorce projektowe helion.pdf

(22992 KB) Pobierz
891916379.005.png
6
SPIS TRECI
Wzorce mapowania struktury...........................................................................................................................49
Mapowanie relacji .....................................................................................................................................49
Dziedziczenie.............................................................................................................................................52
Proces budowy mapowania..............................................................................................................................54
Podwójne mapowanie................................................................................................................................55
Metadane..........................................................................................................................................................55
Poł2czenie z baz2 danych.................................................................................................................................56
Inne problemy mapowania...............................................................................................................................58
Warto przeczyta .............................................................................................................................................58
4.
Prezentacja w sieci WWW ....................................................................................59
Wzorce widoku................................................................................................................................................62
Wzorce kontrolera danych wejciowych..........................................................................................................64
Warto przeczyta .............................................................................................................................................64
5.
Przetwarzanie współbie%ne....................................................................................65
Problemy przetwarzania współbie5nego..........................................................................................................66
Konteksty przetwarzania..................................................................................................................................67
Izolacja i niezmienno ....................................................................................................................................68
Optymistyczne i pesymistyczne sterowanie współbie5noci2..........................................................................68
Zapobieganie niespójnym odczytom..........................................................................................................69
Zakleszczenia.............................................................................................................................................70
Transakcje........................................................................................................................................................71
ACID .........................................................................................................................................................72
Zasoby transakcyjne ..................................................................................................................................72
Zwikszanie 5ywotnoci przez ograniczanie izolacji.................................................................................73
Transakcje biznesowe i systemowe ...........................................................................................................74
Wzorce sterowania współbie5noci2 w trybie offline ......................................................................................76
Serwery aplikacji .............................................................................................................................................77
Warto przeczyta .............................................................................................................................................78
6.
Stan sesji ................................................................................................................79
Zalety sesji bezstanowej...................................................................................................................................79
Stan sesji ..........................................................................................................................................................80
Metody przechowywania danych stanu sesji .............................................................................................81
7 Obiekty rozproszone..............................................................................................85
Zwodnicze obiekty rozproszone ......................................................................................................................85
Interfejsy lokalne i interfejsy zdalne ................................................................................................................86
Kiedy stosowa architektur rozproszon2........................................................................................................87
Granice dystrybucji..........................................................................................................................................88
Interfejsy dystrybucji .......................................................................................................................................89
891916379.006.png 891916379.007.png 891916379.008.png
 
7
SPIS TRECI
8.
Podsumowanie.......................................................................................................91
Warstwa dziedziny, czyli pocz2tek ..................................................................................................................92
Warstwa <ródła danych, czyli krok drugi.........................................................................................................93
=ródło danych dla schematu Transaction Script (110) ..............................................................................93
=ródło danych dla schematu Table Module (125) .....................................................................................93
=ródło danych dla schematu Domain Model (116)....................................................................................94
Warstwa prezentacji.........................................................................................................................................94
Wzorce a technologia.......................................................................................................................................95
Java i J2EE.................................................................................................................................................95
.NET ..........................................................................................................................................................96
Procedury przechowywane ........................................................................................................................97
Usługi WWW ............................................................................................................................................97
Inne systemy warstw aplikacji .........................................................................................................................98
Cz II Wzorce
101
9 Wzorce logiki dziedziny ......................................................................................103
Transaction Script (Skrypt transakcji)............................................................................................................103
Na czym polega .......................................................................................................................................103
Kiedy u5ywamy.......................................................................................................................................105
Problem obliczania przychodu.................................................................................................................105
Domain Model (Model dziedziny).................................................................................................................109
Na czym polega .......................................................................................................................................109
Kiedy u5ywamy.......................................................................................................................................111
Warto przeczyta .....................................................................................................................................112
Przykład: uznanie przychodu (Java) ........................................................................................................112
Table Module (Moduł tabeli).........................................................................................................................117
Na czym polega .......................................................................................................................................118
Kiedy u5ywamy.......................................................................................................................................120
Przykład: uznanie przychodu (C#)...........................................................................................................120
Service Layer (Warstwa usług)......................................................................................................................124
Na czym polega .......................................................................................................................................125
Kiedy u5ywamy.......................................................................................................................................127
Warto przeczyta .....................................................................................................................................127
Przykład: uznanie przychodu (Java) ........................................................................................................127
10.
Wzorce architektury ,ródła danych .....................................................................133
Table Data Gateway (Brama danych tabeli) ..................................................................................................133
Na czym polega........................................................................................................................................133
Kiedy u5ywamy.......................................................................................................................................134
Warto przeczyta .....................................................................................................................................135
Przykład: brama tabeli osób (C#) ............................................................................................................135
Przykład: brama oparta na zbiorach danych ADO.NET (C#)..................................................................137
891916379.001.png 891916379.002.png 891916379.003.png
 
8
SPIS TRECI
Row Data Gateway (Brama danych wiersza).................................................................................................140
Na czym polega .......................................................................................................................................140
Kiedy u5ywamy.......................................................................................................................................142
Przykład: brama rekordu osoby (Java).....................................................................................................142
Przykład: uchwyt danych dla obiektu dziedziny (Java) ...........................................................................146
Active Record (Rekord aktywny) ..................................................................................................................147
Na czym polega .......................................................................................................................................147
Kiedy u5ywamy.......................................................................................................................................148
Przykład: prosta tabela osób (Java)..........................................................................................................148
Data Mapper (Odwzorowanie danych) ..........................................................................................................152
Na czym polega .......................................................................................................................................152
Kiedy u5ywamy.......................................................................................................................................156
Przykład: proste odwzorowanie obiektowo-relacyjne (Java)...................................................................157
Przykład: wył2czanie metod wyszukuj2cych (Java) ................................................................................162
Przykład: tworzenie obiektu pustego (Java).............................................................................................165
11.
Wzorce zachowa- dla mapowania obiektowo-relacyjnego.................................169
Unit of Work (Jednostka pracy).....................................................................................................................169
Na czym polega .......................................................................................................................................170
Kiedy u5ywamy.......................................................................................................................................173
Przykład: rejestracja przez obiekt (Java)..................................................................................................174
Identity Map (Mapa to5samoci)....................................................................................................................178
Na czym polega .......................................................................................................................................178
Kiedy u5ywamy.......................................................................................................................................180
Przykład: metody mapy to5samoci (Java)..............................................................................................181
Lazy Load (Opó<nione ładowanie)................................................................................................................182
Na czym polega .......................................................................................................................................182
Kiedy u5ywamy.......................................................................................................................................184
Przykład: opó<niona inicjalizacja (Java)..................................................................................................185
Przykład: wirtualny porednik (Java).......................................................................................................185
Przykład: uchwyt wartoci (Java) ............................................................................................................187
Przykład: widmo (C#)..............................................................................................................................188
12.
Wzorce struktury dla mapowania obiektowo-relacyjnego ..................................197
Identity Field (Pole to5samoci).....................................................................................................................197
Na czym polega .......................................................................................................................................197
Kiedy u5ywamy.......................................................................................................................................201
Warto przeczyta .....................................................................................................................................201
Przykład: liczba całkowita jako klucz (C#)..............................................................................................201
Przykład: tabela kluczy (Java) .................................................................................................................203
Przykład: klucz zło5ony (Java) ................................................................................................................205
Foreign Key Mapping (Odwzorowanie do klucza obcego)............................................................................216
Na czym polega .......................................................................................................................................216
Kiedy u5ywamy.......................................................................................................................................218
Przykład: odwołanie jednowartociowe (Java)........................................................................................219
Przykład: wyszukiwanie w wielu tabelach (Java)....................................................................................222
Przykład: kolekcja odwoła/ (C#).............................................................................................................223
891916379.004.png
 
9
SPIS TRECI
Association Table Mapping (Odwzorowanie do tabeli asocjacji)..................................................................226
Na czym polega .......................................................................................................................................226
Kiedy u5ywamy.......................................................................................................................................227
Przykład: pracownicy i umiejtnoci (C#)...............................................................................................227
Przykład: odwzorowanie z kodem SQL (Java)........................................................................................230
Przykład: jedno zapytanie do obsługi wielu pracowników (Java)............................................................234
Dependent Mapping (Odwzorowanie składowych) .......................................................................................239
Na czym polega .......................................................................................................................................239
Kiedy u5ywamy.......................................................................................................................................240
Przykład: albumy i cie5ki (Java) ............................................................................................................241
Embedded Value (Warto osadzona) ...........................................................................................................244
Na czym polega .......................................................................................................................................244
Kiedy u5ywamy.......................................................................................................................................244
Warto przeczyta .....................................................................................................................................245
Przykład: prosty obiekt wartoci (Java) ...................................................................................................245
Serialized LOB (Du5y obiekt serializowany).................................................................................................247
Na czym polega .......................................................................................................................................247
Kiedy u5ywamy.......................................................................................................................................248
Przykład: serializowanie hierarchii działów firmy do postaci XML (Java) .............................................249
Single Table Inheritance (Odwzorowanie dziedziczenia do pojedynczej tabeli) ...........................................252
Na czym polega .......................................................................................................................................252
Kiedy u5ywamy.......................................................................................................................................253
Przykład: tabela zawodników (C#)..........................................................................................................253
Class Table Inheritance (Odwzorowanie dziedziczenia do tabel klas)...........................................................259
Na czym polega .......................................................................................................................................259
Kiedy u5ywamy.......................................................................................................................................260
Warto przeczyta .....................................................................................................................................260
Przykład: zawodnicy (C#)........................................................................................................................260
Concrete Table Inheritance (Odwzorowanie dziedziczenia do tabel konkretnych)........................................266
Na czym polega .......................................................................................................................................266
Kiedy u5ywamy.......................................................................................................................................268
Przykład: zawodnicy (C#)........................................................................................................................268
Inheritance Mappers (Klasy odwzorowania dziedziczenia)...........................................................................274
Na czym polega .......................................................................................................................................275
Kiedy u5ywamy.......................................................................................................................................276
13.
Wzorce odwzorowa- obiektów i relacyjnych metadanych .................................277
Metadata Mapping (Odwzorowanie metadanych) .........................................................................................277
Na czym polega .......................................................................................................................................277
Kiedy u5ywamy.......................................................................................................................................279
Przykład: u5ycie metadanych i odzwierciedlania (Java)..........................................................................280
Query Object (Obiekt zapytania) ...................................................................................................................287
Na czym polega .......................................................................................................................................287
Kiedy u5ywamy.......................................................................................................................................288
Warto przeczyta .....................................................................................................................................289
Przykład: prosty wzorzec Obiekt zapytania (Java) ..................................................................................289
Repository (Magazyn)....................................................................................................................................293
Na czym polega .......................................................................................................................................294
Kiedy u5ywamy.......................................................................................................................................295
Warto przeczyta .....................................................................................................................................296
Przykład: odnajdywanie osób utrzymywanych przez podan2 osob (Java).............................................296
Przykład: zamiana strategii wzorca Repository (Java).............................................................................297
Zgłoś jeśli naruszono regulamin