Concurrent Programming in Java
© 1996-1999 Doug Lea  



3.3 Structuring and Refactoring Classes


Readings and Resources

More thorough discussions and further examples of inheritance anomalies can be found in the collection edited by Agha, Wegner, and Yonezawa listed in 1.2.5, as well as in papers presented at recent OO conferences such as ECOOP, the thesis by David Holmes listed in 1.4.5, and in: The Composition-Filters system is an example of an OO development framework that requires separation of functionality from synchronization control. It also includes a more extensive notation than conflict sets for representing concurrency control constraints. See for example, papers by Mehmet Aksit and others in the collection edited by Guerraoui, Nierstrasz, and Riveill listed in 1.2.5.

Techniques for representing states and transitions (for example using finite state machines) are described in most accounts of OO and concurrent software design listed in 1.3.5. Additional patterns are discussed in:

The inner classes used in RWLock illustrate a simple, non-queryable version of the Extension Object pattern. See:

Doug Lea
Last modified: Sun Oct 17 07:57:03 EDT 1999