
最 低 价:¥746.00
| preface who this book is for acknowledgments colophon introduction architecture enterprise applications kinds of enterprise application thinking about performance patterns the structure of the patterns limitations of these patterns part 1: the narratives chapter 1: layering the evolution of layers in enterprise applications the three principal layers choosing where to run your layers chapter 2: organizing domain logic making a choice service layer .chapter 3: mapping to relational databases architectural patterns the behavioral problem reading in data structural mapping patterns mapping relationships inheritance building the mapping double mapping using metadata database connections some miscellaneous points further reading chapter 4: web presentation view patterns input controller patterns further reading chapter 5: concurrency (by martin fowler and david rice) concurrency problems execution contexts isolation and immutability optimistic and pessimistic concurrency control preventing inconsistent reads deadlocks transactions acid transactional resources reducing transaction isolation for liveness business and system transactions patterns for offiine concurrency control application server concurrency further reading chapter 6: session state the value of statelessness session state ways to store session state chapter 7: distribution strategies the allure of distributed objects remote and local interfaces where you have to distribute working with the distribution boundary interfaces for distribution chapter 8: putting it all together starting with the domain layer down to the data source layer data source for transaction script (110) data source for table module (125) data source for domain model (116) the presentation layer some technology-specific advice java and j2ee .net stored procedures web services other layering schemes part 2: the patterns chapter 9: domain logic patterns transaction script how it works when to use it the revenue recognition problem example: revenue recognition (java) domain model how it works when to use it further reading example: revenue recognition (java) table module how it works when to use it example: revenue recognition with a table module (c#) service layer (by randy stafford) how it works when to use it further reading example: revenue recognition (java) chapter 10: data source architectural patterns table data gateway how it works when to use it further reading example: person gateway (c#) example: using ado.net data sets (c#) row data gateway how it works when to use it example: a person record (java) example: a data holder for a domain object (java) active record how it works when to use it example: a simple person (java) data mapper how it works when to use it example: a simple database mapper (java) example: separating the finders (java) example: creating an empty object (java) chapter 11: object-relational behavioral patterns unit of work how it works when to use it example: unit of work with object registration (java) (by david rice) identity map how it works when to use it example: methods for an identity map (java) lazy load how it works when to use it example: lazy initialization (java) example: virtual proxy (java) example: using a value holder (java) example: using ghosts (c#) chapter 12: object-relational structural patterns identity field how it works when to use it further reading example: integral key (c#) example: using a key table (java) example: using a compound key (java) foreign key mapping how it works when to use it example: single-valued reference (java) example: multitable find (java) example: collection of references (c#) association table mapping how it works when to use it example: employees and skills (c#) example: using direct sql (java) example: using a single query for multiple employees (java) (by matt foemmel and martin fowler) dependent mapping how it works when to use it example: albums and tracks (java) embedded value how it works when to use it further reading example: simple value object (java) serialized lob how it works when to use it example: serializing a department hierarchy in xml (java) single table inheritance how it works when to use it example: a single table for players (c#) loading an object from the database class table inheritance how it works when to use it further reading example: players and their kin (c#) concrete table inheritance how it works when to use it example: concrete players (c#) inheritance mappers how it works when to use it chapter 13: object-relational metadata mapping patterns metadata mapping how it works when to use it example: using metadata and reflection (java) query object how it works when to use it further reading example: a simple query object (java) repository (by edward hieatt and rob mee) how it works when to use it further reading example: finding a person's dependents (java) example: swapping repository strategies (java) chapter 14: web presentation patterns model view controller how it works when to use it page controller how it works when to use it example: simple display with a servlet controller and a jsp view (java) example: using a jsp as a handler (java) example: page handler with a code behind (c#) front controller how it works when to use it further reading example: simple display (java) template view how it works when to use it example: using a jsp as a view with a separate controller (java) example: asp. net server page (c#) transform view how it works when to use it example: simple transform (java) two step view how it works when to use it example: two stage xslt (xslt) example: jsp and custom tags (java) application controller how it works when to use it further reading example: state model application controller (java) chapter 15: distribution patterns remote facade how it works when to use it example: using a java session bean as a remote facade (java) example: web service (c#) data transfer object how it works when to use it further reading example: transferring information about albums (java) example: serializing using xml (java) chapter 16: offline concurrency patterns optimistic offiine lock (by david rice) how it works when to use it example: domain layer with data mappers (165) (java) pessimistic offiine lock (by david rice) how it works when to use it example: simple lock manager (java) coarse-grained lock (by david rice and matt foemmel) how it works when to use it example: shared optimistic offline lock (416) (java) example: shared pessimistic offiine lock (426) (java) example: root optimistic offiine lock (416) (java) implicit lock (by david rice) how it works when to use it example: implicit pessimistic offiine lock (426) (java) chapter 17: session state patterns client session state how it works when to use it server session state how it works when to use it database session state how it works when to use it chapter 18: base patterns gateway how it works when to use it example: a gateway to a proprietary messaging service (java) mapper how it works when to use it layer supertype how it works when to use it example: domain object (java) separated interface how it works when to use it registry how it works when to use it example: a singleton registry (java) example: thread-safe registry (java) (by matt foemmel and martin fowler) value object how it works when to use it money how it works when to use it example: a money class (java) (by matt foemmel and martin fowler) special case how it works when to use it further reading example: a simple null object (c#) plugin (by david rice and matt foemmel) how it works when to use it example: an id generator (java) service stub (by david rice) how it works when to use it example: sales tax service (java) record set how it works when to use it references index |
商品评论(0条)