Tech Report CS-89-15
Towards a Unified Method of Sharing in Object-Oriented Programming
Lynn Andrea Stein
The tradeoff between flexibility and behavioral guarantee permeates almost every aspect of computer science. In object-oriented programming, this issue is reflected in the current delegation-vs.-inheritance debate. We describe several mechanisms which impart some of the flexibility of delegation to a more rigidly constrained system. In doing so, we outline a new design methodology which allows the user to program in a more natural and dynamic fashion, occasionally stepping outside the bounds of type inclusion, and then automatically restoring the structure of the strict class hierarchy.
(complete text in pdf)