A Collection of History Patterns

Over time, events bring about changes of state in a domain. These events may originate external to the domain, or be generated by the domain itself. It is frequently necessary to either provide an audit trail as to how a domain object reached a particular state, or to enable operations on a domain object in the state it was at a previous point in time. This paper presents a collection of patterns that document techniques for recording the history of domain objects, by using an Edition to associate the changed state with the event that caused it. The sequence of the patterns reflects an increasing scope in the change of state: from the changing of a simple value of a variable (ChangeLog) through to the capturing of an entire composite structure at a point in time (HistoryOnTree).

[1]  Sherman R. Alpert,et al.  The Design Patterns Smalltalk Companion , 1998 .

[2]  Martin Fowler,et al.  Analysis patterns - reusable object models , 1996, Addison-Wesley series in object-oriented software engineering.

[3]  Ralph Johnson,et al.  The User-Defined Product Framework , 1992 .

[4]  Kent L. Beck Smalltalk best practice patterns , 1996 .

[5]  Jean Piaget,et al.  The child's conception of time; , 1969 .