Document Type


Article Version

Publisher's PDF

Publication Date



Interactive programs use multiple viewers and controllers to alter an underlying numeric model. These can update each other in an observer-observable loop that can propagate unintended and unmanaged digitization errors. The OCO design pattern breaks the loop and maintains control of the numerical values. The interception of changes is done via a modification of the equals method. If two numbers are equal (to within a user defined tolerance) propagation is suppressed. Thus, the digitizer re-samples and re-quantizes the numeric event. Lazy instantiation is not new, nor, for that matter, is the singleton design pattern. However, parametric lazy instantiation is new and so is the parametric singleton.


Copyright 2007 Journal of Object Technology

Archived with permission from the copyright holder.

Publication Title

Journal of Object Technology

Published Citation

Douglas Lyon, Carl Weiman, “Observer-Conditioned-Observable Design Pattern”, Journal of Object Technology, Volume 6, no. 4 (May 2007), pp. 15-24



Peer Reviewed