Managing inter-object dependencies in object-oriented systems is a complex task. Changes of one object often require dependent objects to change accordingly. Making every object explicitly inform every dependent object about its state changes intertwines object interfaces and implementations, thereby hampering system evolution and maintenance. These problems can be overcome by introducing the notion of Implicit Invocation as a decoupling mechanism between objects to object-oriented systems. This paper presents the Event Notification pattern, a pattern to smoothly integrate implicit invocation mechanisms with object-oriented designs. State changes of objects, dependencies of other objects on them and the maintenance links between these objects are made explicit as first class objects. The resulting structure is highly flexible and can be used to manage inter-object dependencies in object-oriented systems efficiently.
Dirk Riehle. "The Event Notification Pattern--Integrating Implicit Invocation with Object-Orientation." Theory and Practice of Object Systems 2, 1 (1996). Page 43-52.
For the time being, a copy is available as a PDF file.
The C++ sample code from the pattern is available as events.zip. No warranties, use at your own risk.
Copyright (©) 1996 by Wiley & Sons, Inc. All rights reserved.