Overview of

Java Enterprise Design Patterns

from Patterns in Java Volume 3

This page contains synopsis of the patterns in my book Patterns in Java, Volume 3. 
Order Volume 3

If you have any comments or suggestions, please send mail to mgrand@mindspring.com . Synopsis of the design patterns in volume 1 and the patterns in volume 2 are available on a separate page.

Transaction Patterns ACID Transaction
Audit Trail
Composite Transaction
Two Phase Commit
Distributed Architecture Patterns Demilitarized Zone
Mobile Agent
Object Replication
Object Request Broker
Process Pair
Prompt Repair
Redundant Independent Objects
Shared Object
Distributed Computing Patterns Connection Multiplexing
Heavyweight/Lightweight Object
Object Identifier
Protection Proxy
Concurrency Patterns Cache Consistency
Deep Transaction Nesting
Lock File
Optimistic Concurrency
Session Object
Static Locking Order
Thread Pool
Temporal Patterns Temporal Property
Time Server
Versioned Object
Database Patterns CRUD
Lazy Retrieval
Persistence Layer
Stale Object
Type Conversion

Transaction Patterns

Distributed Architecture Patterns

Distributed Computing Patterns

Concurrency Patterns

Related patterns are

Temporal Patterns

  • Versioned Object

  • You may need to access pervious or future states of an object. When an object gets a new state, keep both the object’s new state and its previous states. Identify the states by a timestamp or a version number. Allow access to a specific state of an object by identifying its timestamp or version number.

    Related patterns are

  • Temporal Property

  • The values of an object’s attributes may change over time. They usually change independently of each other. Keep historical values of attributes in a way that allows clients to get the effective value of a particular attribute as of a particular time.

    Related patterns are

    Database Patterns

    If the design of a program involves persisted complex objects, you may find a persistence layer having to move large numbers of related objects in and out of a database all at once. If they are not all needed at once, then delay the retrieval of portions of complex objects until they are needed.

    Related patterns are

    An implementation of the Lazy Retrieval pattern may use the Object Identifier pattern to identify an object that is associated with a complex object but not yet retrieved from the database.

    If you have any suggestions about this page or would like to discuss a pattern with its author, send e-mail to mgrand@mindspring.com .

    Return to Mark Grand's home page.