Pattern Name |
Problem |
Solution |
Replay Changes
|
How can a client application preserve a user's changes after aborting
a transaction?
|
The client keeps the changes independent from the view of the repository,
so that when a view is refreshed, the changes may be replayed.
|
Transaction Specification
|
How can changes to domain model objects be saved independently from
the domain model?
|
Save the sequence of messages that can be sent to cause the desired
changes to occur.
|
Aspect Change Specification
|
How can a client application record a change to a domain model object
independently from that object?
|
Specify the message that must be sent in order to accomplish the
desired change. A message is completely specified by its receiver,
method signature, and arguments.
|
Dirty Object Pool
|
How can a client application record a change to a domain model object
independently from that object?
|
Keep a copy of the object in its changed state.
|
Locked Object
|
How can you reduce the risk of a commit failure when modifying
an object?
|
Obtain a write lock on an object before modifying it.
|
Check Out Objects
|
How can you maintain a lock on an object for a long period of time?
|
Develop a lock table that holds persistent locks for objects that
have been checked out. The application checks out a copy of the
object, makes changes, and then checks in the changed copy.
|