J2EE AntiPatterns

Bill Dudney, Stephen Asbury, Joseph K. Krozak, Kevin Wittkopf

  • 出版商: Wiley
  • 出版日期: 2003-08-22
  • 售價: $1,900
  • 貴賓價: 9.5$1,805
  • 語言: 英文
  • 頁數: 624
  • 裝訂: Paperback
  • ISBN: 0471146153
  • ISBN-13: 9780471146155
  • 相關分類: Design Pattern 設計模式
  • 已過版



"The flip-side of Patterns, AntiPatterns provide developers with formal descriptions of common development gaffes that can derail a project along with practical guidelines on how to avoid them. In this book, the authors present dozens of Java AntiPatterns that tackle many of Java's biggest trouble spots for programming with EJB, JSP, Servlets, and more. Each AntiPattern is documented with real-world examples, code, and refactored (or escape-route) solutions, and the book uses UML (where appropriate) to diagram improved solutions. All code examples from the book are available to the reader on the book's companion Web site."

Table of Contents



Author Bios.


Chapter 1: Distribution and Scaling.

AntiPattern: Localizing Data.

AntiPattern: Misunderstanding Data Requirements.

AntiPattern: Miscalculating Bandwidth Requirements.

AntiPattern: Overworked Hubs.

AntiPattern: The Man with the Axe.


Plan Ahead.

Choose the Right Data Architecture.

Partition Data and Work.

Plan for Scaling (Enterprise-Scale Object Orientation).

Plan Realistic Network Requirements.

Use Specialized Networks.

Be Paranoid.

Throw Hardware at the Problem.

Chapter 2: Persistence.

AntiPattern: Dredge.

AntiPattern: Crush.

AntiPattern: DataVision.

AntiPattern: Stifle.


Light Query.


Component View.


Chapter 3: Service-Based Architecture.

AntiPattern: Multiservice.

AntiPattern: Tiny Service.

AntiPattern: Stovepipe Service.

AntiPattern: Client Completes Service.


Interface Partitioning.

Interface Consolidation.

Technical Services Layer.

Cross-Tier Refactoring.

Chapter 4: JSP Use and Misuse.

AntiPattern: Ignoring Reality.

AntiPattern: Too Much Code.

AntiPattern: Embedded Navigational Information.

AntiPattern: Copy and Paste JSP.

AntiPattern: Too Much Data in Session.

AntiPattern: Ad Lib TagLibs.



Introduce Traffic Cop.

Introduce Delegate Controller.

Introduce Template.

Remove Session Access.

Remove Template Text.

Introduce Error Page.

Chapter 5: Servlets.

AntiPattern: Including Common Functionality in Every Servlet.

AntiPattern: Template Text in Servlet.

AntiPattern: Using Strings for Content Generation.

AntiPattern: Not Pooling Connections.

AntiPattern: Accessing Entities Directly.


Introduce Filters.

Use JDom.

Use JSPs.

Chapter 6: Entity Beans.

AntiPattern: Fragile Links.

AntiPattern: DTO Explosion.

AntiPattern: Surface Tension.

AntiPattern: Coarse Behavior.

AntiPattern: Liability.

AntiPattern: Mirage.


Local Motion.



Flat View.

Strong Bond.

Best of Both Worlds.


Chapter 7: Session EJBs.

AntiPattern: Sessions A-Plenty.

AntiPattern: Bloated Session.

AntiPattern: Thin Session.

AntiPattern: Large Transaction.

AntiPattern: Transparent Façade.

AntiPattern: Data Cache.


Session Façade.

Split Large Transaction.

Chapter 8: Message-Driven Beans.

AntiPattern: Misunderstanding JMS.

AntiPattern: Overloading Destinations.

AntiPattern: Overimplementing Reliability.


Architect the Solution.

Plan Your Network Data Model.

Leverage All Forms of EJBs.

Chapter 9: Web Services.

AntiPattern: Web Services Will Fix Our Problems.

AntiPattern: When in Doubt, Make It a Web Service.

AntiPattern: God Object Web Service.

AntiPattern: Fine-Grained/Chatty Web Service.

AntiPattern: Maybe It’s Not RPC.

AntiPattern: Single-Schema Dream.

AntiPattern: SOAPY Business Logic.


RPC to Document Style.

Schema Adaptor.

Web Service Business Delegate.

Chapter 10: J2EE Services.

AntiPattern: Hard-Coded Location Identifiers.

AntiPattern: Web = HTML.

AntiPattern: Requiring Local Native Code.

AntiPattern: Overworking JNI.

AntiPattern: Choosing the Wrong Level of Detail.

AntiPattern: Not Leveraging EJB Containers.


Parameterize Your Solution.

Match the Client to the Customer.

Control the JNI Boundary.

Fully Leverage J2EE Technologies.

Appendix A AntiPatterns Catalog.

Distribution and Scaling AntiPatterns.

Persistence AntiPatterns.

Service-Based Architecture AntiPatterns.

JSP Use and Misuse AntiPatterns.

Servlet AntiPatterns.

Entity Bean AntiPatterns.

Session EJB AntiPatterns.

Message-Driven Bean AntiPatterns.

Web Services AntiPatterns.

J2EE Service AntiPatterns.

Appendix B: Refactorings Catalog.

Distribution and Scaling Refactorings.

Persistence Refactorings.

Service-Based Architecture Refactorings.

JSP Use and Misuse Refactorings.

Servlet Refactorings.

Entity Bean Refactorings.

Session EJBs Refactorings.

Message-Driven Bean Refactorings.

Web Service Refactorings.

J2EE Service Refactorings.

Appendix C: What’s on the Web Site.

System Requirements.

What’s on the Web Site.