Parameterization versus Inheritance
Using an object-oriented language is not a guarantee for reusable software. Perhaps even more important than the language chosen, are the methods, patterns, and idioms used for design and implementation. In this respect we propose to realize behavior refinement by parameterization instead of inheritance. We show applications for behavior parameterization, avoiding disadvantages related to subclassing. We demonstrate that the so constructed micro-architectures, originating from the world of functional programming, integrate into standard object-oriented programming. Moreover, we argue that they improve object-oriented virtues such as modularity, locality of definition, and reusability.