| Preface | p. xvii |
| Acknowledgments | p. xxi |
| Introduction | p. xxiii |
| Decoupling Patterns | p. 1 |
| The Data Model and Data Access | p. 3 |
| Domain Objects and Relational Data | p. 4 |
| Decoupling Patterns | p. 6 |
| Data Accessor | p. 9 |
| Description | p. 9 |
| Context | p. 9 |
| Applicability | p. 14 |
| Structure | p. 15 |
| Interactions | p. 16 |
| Consequences | p. 16 |
| Strategies | p. 17 |
| Sample Code | p. 20 |
| Related Patterns and Technology | p. 31 |
| Active Domain Object | p. 33 |
| Description | p. 33 |
| Context | p. 33 |
| Applicability | p. 37 |
| Structure | p. 38 |
| Interactions | p. 38 |
| Consequences | p. 39 |
| Strategies | p. 40 |
| Sample Code | p. 43 |
| Related Patterns and Technology | p. 52 |
| Object/Relational Map | p. 53 |
| Description | p. 53 |
| Context | p. 53 |
| Applicability | p. 58 |
| Structure | p. 58 |
| Interactions | p. 59 |
| Consequences | p. 60 |
| Strategies | p. 61 |
| Sample Code | p. 65 |
| Related Patterns and Technology | p. 72 |
| Layers | p. 75 |
| Description | p. 75 |
| Context | p. 75 |
| Applicability | p. 80 |
| Structure | p. 81 |
| Interactions | p. 83 |
| Consequences | p. 84 |
| Strategies | p. 85 |
| Sample Code | p. 86 |
| Related Patterns and Technology | p. 93 |
| Resource Patterns | p. 95 |
| Resources and Context | p. 96 |
| Resources and Concurrency | p. 97 |
| Data Access Resources | p. 97 |
| Resource Management | p. 99 |
| Resource Patterns | p. 100 |
| Resource Decorator | p. 103 |
| Description | p. 103 |
| Context | p. 103 |
| Applicability | p. 106 |
| Structure | p. 106 |
| Interactions | p. 107 |
| Consequences | p. 108 |
| Strategies | p. 109 |
| Sample Code | p. 111 |
| Related Patterns and Technology | p. 116 |
| Resource Pool | p. 117 |
| Description | p. 117 |
| Context | p. 117 |
| Applicability | p. 118 |
| Structure | p. 119 |
| Interactions | p. 120 |
| Consequences | p. 122 |
| Strategies | p. 122 |
| Sample Code | p. 125 |
| Related Patterns and Technology | p. 135 |
| Resource Timer | p. 137 |
| Description | p. 137 |
| Context | p. 137 |
| Applicability | p. 139 |
| Structure | p. 140 |
| Interactions | p. 141 |
| Consequences | p. 143 |
| Strategies | p. 144 |
| Sample Code | p. 146 |
| Related Patterns and Technology | p. 157 |
| Resource Descriptor | p. 159 |
| Description | p. 159 |
| Context | p. 159 |
| Applicability | p. 162 |
| Structure | p. 163 |
| Interactions | p. 163 |
| Consequences | p. 163 |
| Strategies | p. 164 |
| Sample Code | p. 165 |
| Related Patterns and Technology | p. 169 |
| Retryer | p. 171 |
| Description | p. 171 |
| Context | p. 171 |
| Applicability | p. 173 |
| Structure | p. 174 |
| Interactions | p. 175 |
| Consequences | p. 176 |
| Strategies | p. 176 |
| Sample Code | p. 178 |
| Related Patterns and Technology | p. 183 |
| Input and Output Patterns | p. 185 |
| Input and Output Operations | p. 186 |
| Identity Objects | p. 187 |
| Input and Output Patterns | p. 189 |
| Selection Factory | p. 191 |
| Description | p. 191 |
| Context | p. 191 |
| Applicability | p. 193 |
| Structure | p. 193 |
| Interactions | p. 194 |
| Consequences | p. 195 |
| Strategies | p. 195 |
| Sample Code | p. 196 |
| Related Patterns and Technology | p. 201 |
| Domain Object Factory | p. 203 |
| Description | p. 203 |
| Context | p. 203 |
| Applicability | p. 205 |
| Structure | p. 205 |
| Interactions | p. 206 |
| Consequences | p. 206 |
| Strategies | p. 207 |
| Sample Code | p. 209 |
| Related Patterns and Technology | p. 213 |
| Update Factory | p. 215 |
| Description | p. 215 |
| Context | p. 215 |
| Applicability | p. 217 |
| Structure | p. 217 |
| Interactions | p. 218 |
| Consequences | p. 218 |
| Strategies | p. 219 |
| Sample Code | p. 220 |
| Related Patterns and Technology | p. 224 |
| Domain Object Assembler | p. 227 |
| Description | p. 227 |
| Context | p. 227 |
| Applicability | p. 230 |
| Structure | p. 230 |
| Interactions | p. 232 |
| Consequences | p. 235 |
| Strategies | p. 235 |
| Sample Code | p. 236 |
| Related Patterns and Technology | p. 252 |
| Paging Iterator | p. 253 |
| Description | p. 253 |
| Context | p. 253 |
| Applicability | p. 255 |
| Structure | p. 256 |
| Interactions | p. 257 |
| Consequences | p. 258 |
| Strategies | p. 259 |
| Sample Code | p. 260 |
| Related Patterns and Technology | p. 264 |
| Cache Patterns | p. 267 |
| Cache Operations and Transparency | p. 268 |
| Cached Data | p. 268 |
| Cache Patterns | p. 269 |
| Cache Accessor | p. 271 |
| Description | p. 271 |
| Context | p. 271 |
| Applicability | p. 272 |
| Structure | p. 273 |
| Interactions | p. 274 |
| Consequences | p. 275 |
| Strategies | p. 276 |
| Sample Code | p. 277 |
| Related Patterns and Technology | p. 280 |
| Demand Cache | p. 281 |
| Description | p. 281 |
| Context | p. 281 |
| Applicability | p. 282 |
| Structure | p. 283 |
| Interactions | p. 283 |
| Consequences | p. 285 |
| Strategies | p. 285 |
| Sample Code | p. 286 |
| Related Patterns and Technology | p. 290 |
| Primed Cache | p. 291 |
| Description | p. 291 |
| Context | p. 291 |
| Applicability | p. 293 |
| Structure | p. 293 |
| Interactions | p. 294 |
| Consequences | p. 295 |
| Strategies | p. 296 |
| Sample Code | p. 297 |
| Related Patterns and Technology | p. 304 |
| Cache Search Sequence | p. 305 |
| Description | p. 305 |
| Context | p. 305 |
| Applicability | p. 309 |
| Structure | p. 309 |
| Interactions | p. 310 |
| Consequences | p. 312 |
| Strategies | p. 312 |
| Sample Code | p. 315 |
| Related Patterns and Technology | p. 323 |
| Cache Collector | p. 325 |
| Description | p. 325 |
| Context | p. 325 |
| Applicability | p. 326 |
| Structure | p. 327 |
| Interactions | p. 329 |
| Consequences | p. 331 |
| Strategies | p. 332 |
| Sample Code | p. 332 |
| Related Patterns and Technology | p. 344 |
| Cache Replicator | p. 345 |
| Description | p. 345 |
| Context | p. 345 |
| Applicability | p. 349 |
| Structure | p. 350 |
| Interactions | p. 351 |
| Consequences | p. 351 |
| Strategies | p. 353 |
| Sample Code | p. 353 |
| Related Patterns and Technology | p. 359 |
| Cache Statistics | p. 361 |
| Description | p. 361 |
| Context | p. 361 |
| Applicability | p. 363 |
| Structure | p. 363 |
| Interactions | p. 363 |
| Consequences | p. 364 |
| Strategies | p. 364 |
| Sample Code | p. 365 |
| Related Patterns and Technology | p. 370 |
| Concurrency Patterns | p. 371 |
| Units of Work | p. 371 |
| Working Copies | p. 372 |
| Concurrency Problems | p. 373 |
| Concurrency Solutions | p. 375 |
| Concurrency Patterns | p. 376 |
| Transaction | p. 379 |
| Description | p. 379 |
| Context | p. 379 |
| Applicability | p. 382 |
| Structure | p. 382 |
| Interactions | p. 383 |
| Consequences | p. 384 |
| Strategies | p. 384 |
| Sample Code | p. 391 |
| Related Patterns and Technology | p. 393 |
| Optimistic Lock | p. 395 |
| Description | p. 395 |
| Context | p. 395 |
| Applicability | p. 397 |
| Structure | p. 397 |
| Interactions | p. 398 |
| Consequences | p. 398 |
| Strategies | p. 399 |
| Sample Code | p. 400 |
| Related Patterns and Technology | p. 404 |
| Pessimistic Lock | p. 405 |
| Description | p. 405 |
| Context | p. 405 |
| Applicability | p. 408 |
| Structure | p. 408 |
| Interactions | p. 408 |
| Consequences | p. 409 |
| Strategies | p. 410 |
| Sample Code | p. 411 |
| Related Patterns and Technology | p. 415 |
| Compensating Transaction | p. 417 |
| Description | p. 417 |
| Context | p. 417 |
| Applicability | p. 420 |
| Structure | p. 421 |
| Interactions | p. 422 |
| Consequences | p. 423 |
| Strategies | p. 423 |
| Sample Code | p. 424 |
| Related Patterns and Technology | p. 430 |
| Afterword | p. 431 |
| Glossary | p. 433 |
| Bibliography | p. 441 |
| Index | p. 445 |
| Table of Contents provided by Ingram. All Rights Reserved. |