J2EE Design Patterns - Helion
ISBN: 978-14-493-7888-2
stron: 370, Format: ebook
Data wydania: 2003-09-24
Księgarnia: Helion
Cena książki: 143,65 zł (poprzednio: 167,03 zł)
Oszczędzasz: 14% (-23,38 zł)
Architects of buildings and architects of software have more in common than most people think. Both professions require attention to detail, and both practitioners will see their work collapse around them if they make too many mistakes. It's impossible to imagine a world in which buildings get built without blueprints, but it's still common for software applications to be designed and built without blueprints, or in this case, design patterns.A software design pattern can be identified as "a recurring solution to a recurring problem." Using design patterns for software development makes sense in the same way that architectural design patterns make sense--if it works well in one place, why not use it in another? But developers have had enough of books that simply catalog design patterns without extending into new areas, and books that are so theoretical that you can't actually do anything better after reading them than you could before you started.Crawford and Kaplan's J2EE Design Patterns approaches the subject in a unique, highly practical and pragmatic way. Rather than simply present another catalog of design patterns, the authors broaden the scope by discussing ways to choose design patterns when building an enterprise application from scratch, looking closely at the real world tradeoffs that Java developers must weigh when architecting their applications. Then they go on to show how to apply the patterns when writing realworld software. They also extend design patterns into areas not covered in other books, presenting original patterns for data modeling, transaction / process modeling, and interoperability.J2EE Design Patterns offers extensive coverage of the five problem areas enterprise developers face:
- Maintenance (Extensibility)
- Performance (System Scalability)
- Data Modeling (Business Object Modeling)
- Transactions (process Modeling)
- Messaging (Interoperability)
Osoby które kupowały "J2EE Design Patterns", wybierały także:
- Wprowadzenie do Javy. Programowanie i struktury danych. Wydanie XII 193,23 zł, (59,90 zł -69%)
- Spring i Spring Boot. Kurs video. Testowanie aplikacji i bezpiecze 129,00 zł, (51,60 zł -60%)
- Metoda dziel i zwyci 89,00 zł, (35,60 zł -60%)
- JavaFX. Kurs video. Wzorce oraz typy generyczne 79,00 zł, (31,60 zł -60%)
- Platforma Xamarin. Kurs video. Poziom drugi. Zaawansowane techniki tworzenia aplikacji cross-platform 99,00 zł, (39,60 zł -60%)
Spis treści
J2EE Design Patterns eBook -- spis treści
- J2EE Design Patterns
- SPECIAL OFFER: Upgrade this ebook with OReilly
- A Note Regarding Supplemental Files
- Preface
- Audience
- Organization of This Book
- For Further Reading
- Conventions Used in This Book
- Comments and Questions
- Acknowledgments
- William Crawford
- Jonathan Kaplan
- 1. Java Enterprise Design
- 1.1. Design Patterns
- 1.1.1. The Anatomy of a Pattern
- 1.1.2. Presenting Patterns
- 1.2. J2EE
- 1.3. Application Tiers
- 1.3.1. Component-Based Development
- 1.3.1.1. Characteristics of components
- 1.3.1. Component-Based Development
- 1.4. Core Development Concepts
- 1.4.1. Extensibility
- 1.4.1.1. Techniques for extensibility
- 1.4.2. Scalability
- 1.4.3. Reliability
- 1.4.4. Timeliness
- 1.4.1. Extensibility
- 1.5. Looking Ahead
- 1.1. Design Patterns
- 2. The Unified Modeling Language
- 2.1. Origins of UML
- 2.2. The Magnificent Seven
- 2.3. UML and Software Development Lifecycles
- 2.4. Use Case Diagrams
- 2.5. Class Diagrams
- 2.5.1. Relationships Between Classes
- 2.5.1.1. Aggregation and composition
- 2.5.2. Describing Patterns with Class Diagrams
- 2.5.3. Objects
- 2.5.4. Packages
- 2.5.1. Relationships Between Classes
- 2.6. Interaction Diagrams
- 2.6.1. Sequence Diagrams
- 2.6.2. Collaboration Diagrams
- 2.7. Activity Diagrams
- 2.8. Deployment Diagrams
- 3. Presentation Tier Architecture
- 3.1. Server-Side Presentation Tier
- 3.2. Application Structure
- 3.2.1. The Model-View-Controller Pattern
- 3.2.2. Using MVC in J2EE
- 3.2.2.1. The data model
- 3.2.2.2. The controller servlet
- 3.2.2.3. JSP: The view
- 3.3. Building a Central Controller
- 3.3.1. The Front Controller Pattern
- 3.3.2. The Front Controller Servlet
- 3.3.2.1. Deploying the front controller
- 3.3.3. The Decorator Pattern
- 3.3.4. Decorating the Front Controller
- 3.3.4.1. Implementing a decorating filter
- 3.3.4.2. Deploying decorating filters
- 3.3.4.3. Other decorators
- 4. Advanced Presentation Tier Design
- 4.1. Reuse in Web Applications
- 4.2. Extending the Controller
- 4.2.1. The Service to Worker Pattern
- 4.2.2. Service to Worker in J2EE
- 4.2.2.1. Models and views
- 4.2.2.2. Actions
- 4.2.2.3. The dispatcher
- 4.2.2.4. The front controller
- 4.3. Advanced Views
- 4.3.1. The View Helper Pattern
- 4.3.2. Implementing a View Helper
- 4.3.2.1. Parsing the RSS
- 4.3.2.2. Using the RSS: Custom tags
- 4.3.3. Composite View
- 4.3.3.1. The Composite View pattern
- 4.3.3.2. Implementing composite views
- 4.3.3.3. Reusing the front controller and dispatcher
- 4.3.3.4. Building the custom tags
- 4.3.3.5. Using templates
- 5. Presentation Tier Scalability
- 5.1. Scalability and Bottlenecks
- 5.2. Content Caching
- 5.2.1. Caching Content Components
- 5.2.2. The Asynchronous Page Pattern
- 5.2.2.1. Implementing the Asynchronous Page pattern
- 5.2.3. Dynamic Content Caching
- 5.2.4. The Caching Filter Pattern
- 5.2.5. Implementing a Caching Filter
- 5.3. Resource Pool
- 5.3.1. The Resource Pool Pattern
- 5.3.2. Implementing a Resource Pool
- 6. The Business Tier
- 6.1. The Business Tier
- 6.1.1. Business Tier Components
- 6.1.1.1. Business tier components
- 6.1.1.2. Supporting players
- 6.1.1. Business Tier Components
- 6.2. Domain Objects
- 6.2.1. Domain Object Model
- 6.2.2. Building an Object Model
- 6.2.2.1. Define the vision
- 6.2.2.2. Gather the user cases
- 6.2.2.3. Find object candidates
- 6.2.2.4. Implementing a domain object model in J2EE
- 6.2.3. Composite Entity/Entity Façade Pattern
- 6.2.3.1. A composite entity schema
- 6.1. The Business Tier
- 7. Tier Communications
- 7.1. Data Transfer Patterns
- 7.1.1. Data Transfer Objects
- 7.1.1.1. Data objects as DTOs
- 7.1.1.2. Dedicated data transfer objects
- 7.1.2. Data Transfer Hash Pattern
- 7.1.3. Row Set DTOs
- 7.1.1. Data Transfer Objects
- 7.1. Data Transfer Patterns
- 8. Database and Data Patterns
- 8.1. Data Access Patterns
- 8.1.1. Data Access Object Pattern
- 8.1.2. DAO Factory Pattern
- 8.1.3. Lazy Load
- 8.1.4. The IsDirty Pattern
- 8.1.5. Procedure Access Object
- 8.2. Primary Key Patterns
- 8.2.1. PK Block Generator Pattern
- 8.2.2. Stored Procedures for Primary Keys Pattern
- 8.3. Object-Relational Mappings
- 8.3.1. Complex Class Relations
- 8.3.2. Table Inheritance Pattern
- 8.3.2.1. Concrete Table Inheritance strategy
- 8.3.2.2. Class Table Inheritance strategy
- 8.3.3. The Serialized Entity Pattern
- 8.3.3.1. A serialized entity example
- 8.3.3.2. XML and serialized entities
- 8.3.4. The Tuple Table Pattern
- 8.3.4.1. A tuple table example
- 8.1. Data Access Patterns
- 9. Business Tier Interfaces
- 9.1. Abstracting Business Logic
- 9.1.1. Business Delegate
- 9.1.1.1. Organizing business logic into business delegates
- 9.1.1.2. Business delegate implementation
- 9.1.1.3. Nesting business delegates
- 9.1.1.4. Stateful business delegates
- 9.1.2. Business Delegate Factory Pattern
- 9.1.2.1. Modifying business delegate behavior
- 9.1.1. Business Delegate
- 9.2. Accessing Remote Services
- 9.2.1. The Service Adapter Pattern
- 9.2.2. Session Façade
- 9.2.2.1. Implementing a session façade
- 9.2.2.2. Web services session façades
- 9.2.2.3. Session façade and business delegate
- 9.3. Finding Resources
- 9.3.1. The Service Locator Pattern
- 9.3.2. Service Locator Variations
- 9.3.3. Implementing a Service Locator
- 9.1. Abstracting Business Logic
- 10. Enterprise Concurrency
- 10.1. Transaction Management
- 10.1.1. About Transactions
- 10.1.2. ACID Transaction Pattern
- 10.1.2.1. Transaction isolation
- 10.1.2.2. System and business transactions
- 10.1.3. Transactions and Objects
- 10.1.4. Transactional Context Pattern
- 10.1.4.1. Implementing transactional context with business delegates
- 10.2. General Concurrency Patterns
- 10.2.1. Locking Resources
- 10.2.2. Optimistic Concurrency Pattern
- 10.2.3. Pessimistic Concurrency Pattern
- 10.3. Implementing Concurrency
- 10.3.1. Lockable Object Pattern
- 10.3.2. Lock Manager Pattern
- 10.3.2.1. Online lock manager strategy
- 10.3.2.2. Offline lock manager strategy
- 10.3.3. Version Number Pattern
- 10.1. Transaction Management
- 11. Messaging
- 11.1. Messaging in J2EE
- 11.1.1. Asynchronous Messaging Versus Web Services
- 11.2. Messaging and Integration
- 11.2.1. Types of Messaging
- 11.2.1.1. Guaranteed messaging
- 11.2.1.2. Nonguaranteed messaging
- 11.2.1.3. Persistent and nonpersistent messages in JMS
- 11.2.1. Types of Messaging
- 11.3. Message Distribution Patterns
- 11.3.1. Point-to-Point Distribution Pattern
- 11.3.2. Publish-Subscribe Pattern
- 11.3.3. Malformed Message Channel Pattern
- 11.4. Message Types
- 11.4.1. Event Message
- 11.4.2. Document Message
- 11.4.3. Command Message
- 11.5. Correlating Messages
- 11.5.1. Sequenced Message Pattern
- 11.6. Message Client Patterns
- 11.6.1. Message Handler Pattern
- 11.6.2. Polling Consumer Pattern
- 11.6.3. Event-Driven Consumer Pattern
- 11.6.4. Message Façade Pattern
- 11.6.5. Message Selector Pattern
- 11.6.6. Competing Consumers Pattern
- 11.7. Messaging and Integration
- 11.7.1. Pipes and Filters Pattern
- 11.7.2. Content-Based Routing Pattern
- 11.7.3. Content Aggregator Pattern
- 11.7.4. Control Bus Pattern
- 11.8. For Further Reading
- 11.1. Messaging in J2EE
- 12. J2EE Antipatterns
- 12.1. Causes of Antipatterns
- 12.2. Architectural Antipatterns
- 12.2.1. Excessive Layering
- 12.2.1.1. Reducing layers
- 12.2.2. Leak Collection
- 12.2.2.1. Reclaiming lost memory
- 12.2.1. Excessive Layering
- 12.3. Presentation Tier Antipatterns
- 12.3.1. The Magic Servlet
- 12.3.1.1. Refactoring the magic servlet
- 12.3.2. Monolithic/Compound JSPs
- 12.3.2.1. Fixing monolithic and compound JSPs
- 12.3.3. Overstuffed Session
- 12.3.3.1. Unstuffing the session
- 12.3.1. The Magic Servlet
- 12.4. EJB Antipatterns
- 12.4.1. Everything Is an EJB
- 12.4.1.1. Escaping EJBs
- 12.4.2. Round-Tripping
- 12.4.2.1. Reducing round-tripping
- 12.4.3. Stateful When Stateless Will Do
- 12.4.3.1. Turning stateful into stateless
- 12.4.1. Everything Is an EJB
- A. Presentation Tier Patterns
- A.1. Architectural Patterns
- Decorator
- Front Controller
- Model-View-Controller
- A.2. Advanced Architectural Patterns
- Composite View
- Service to Worker
- View Helper
- A.3. Scalability Patterns
- Asynchronous Page
- Caching Filter
- Resource Pool
- A.1. Architectural Patterns
- B. Business Tier Patterns
- B.1. Business Tier Patterns
- Composite Entity
- Domain Object Model
- B.2. Data Transfer Patterns
- Data Transfer Hash
- Data Transfer Object (DTO)
- Row Set DTO
- B.3. Database Patterns
- DAO Factory
- Data Access Object
- IsDirty
- Lazy Load
- Procedure Access Object
- PK Block Generator Pattern
- Serialized Entity Pattern
- Stored Procedures for Primary Keys Pattern
- Table Inheritance Pattern
- Tuple Table Pattern
- B.4. Business Tier Interface Patterns
- Business Delegate
- Business Delegate Factory
- Service Adapter
- Service Locator
- Session Façade
- B.5. Concurrency Patterns
- ACID Transaction Pattern
- Lockable Object Pattern
- Lock Manager Pattern
- Optimistic Concurrency Pattern
- Pessimistic Concurrency Pattern
- Transactional Context Pattern
- Version Number Pattern
- B.1. Business Tier Patterns
- C. Messaging Patterns
- C.1. Message Distribution Patterns
- Malformed Message Channel
- Point-to-Point Distribution Pattern
- Publish-Subscribe Pattern
- C.2. Message Client Patterns
- Competing Consumers Pattern
- Event-Driven Consumer Pattern
- Message Façade Pattern
- Message Handler Pattern
- Message Selector Pattern
- Polling Consumer Pattern
- C.3. Messaging Integration Patterns
- Content Aggregator Pattern
- Content-Based Routing Pattern
- Control Bus Pattern
- Pipes and Filters Pattern
- C.1. Message Distribution Patterns
- D. J2EE Antipatterns
- D.1. Architectural Antipatterns
- Excessive Layering
- Leak Collection
- D.2. Presentation Tier Antipatterns
- Magic Servlet
- Monolithic/Compound JSPs
- Overstuffed Session
- D.3. Business Tier Antipatterns
- Everything Is an EJB
- Round-Tripping
- Stateful When Stateless Will Do
- D.1. Architectural Antipatterns
- About the Authors
- Colophon
- SPECIAL OFFER: Upgrade this ebook with OReilly