Concurrent Programming in Java
© 1996-1999 Doug Lea
3.3 Structuring and Refactoring Classes
Follow-ups
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:
-
McHale, Ciaran. Synchronization in Concurrent Object-Oriented
Languages, PhD Thesis, Trinity College, Ireland, 1994.
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:
-
Dyson, Paul, and Bruce Anderson. "State Patterns", in Robert
Martin, Dirk Riehle, and Frank Buschmann (eds.), Pattern Languages
of Program Design, Volume 3, Addison-Wesley, 1998.
The inner classes used in RWLock illustrate a simple, non-queryable
version of the Extension Object pattern. See:
-
Gamma, Erich. "Extension Object", in Robert Martin, Dirk Riehle,
and Frank Buschmann (eds.), Pattern Languages of Program Design,
Volume 3, Addison-Wesley, 1998.
Doug Lea
Last modified: Sun Oct 17 07:57:03 EDT 1999