Using C++ Templates to Implement Role Based Designs
Kanazawa, Japan / 1996
International Symposium on Object Technologies for Advanced Software
ISSN or ISBN
Within the object-oriented technology community, much recent work on design reuse has focused on role-based collaborations distributed across multiple objects. Many benefits can be derived by mapping role-based designs directly into implementations, including greater ease in maintaining the connection between designs and implementations under change, and the opportunity for code reuse along with design reuse. Current efforts in role-based designs do not generally provide these benefits. We provide a method for mapping role-based designs into implementation, preserving the design without unnecessary constraints on the design structures. Roles are represented as parameterized classes, where the parameters represent the types of the participants in the collaboration. Composition of roles is implicit in the binding of parameters to classes in the implementation. The bindings are created at compile time by class definitions that are separate from the role implementations. In this paper we focus on the use of templates in the C++ language as the supporting mechanism.
Van Hilst, Michael and Notkin, David, "Using C++ Templates to Implement Role Based Designs" (1996). CEC Faculty Articles. 462.