Blake 1987] Edwin Blake and Steve Cook. on In- Cluding Part Hierarchies in Object-oriented Lan- Guages, with an Implementation in Smalltalk. in Smalltalk-80: the Language and Its Implementa- Acknowledgments We Thank Dan Berry | AMiner
Blake 1987] Edwin Blake and Steve Cook. on In- Cluding Part Hierarchies in Object-oriented Lan- Guages, with an Implementation in Smalltalk. in Smalltalk-80: the Language and Its Implementa- Acknowledgments We Thank Dan Berry
Roles for composite objects in object-oriented analysis and design. mu(A* plug): slot(plug) {} // new methods rely on inline // message forwarding mu_1 template class Mu: public Type, public mu { public: Mu(Type& prototype) : Type(prototype), mu(this) {} }; In contrast to the approach relying solely on parameterized classes, instantiation of the template Mu is possible only with subclasses of A. This restriction is a consequence of the use of conngurability in the class mu, which has a slot of type A. 5 Conclusions We have presented a new object-oriented programming and design technique called conngurable objects that allows the dynamic construction of composite objects. The technique is based on the usage of the composition mechanism combined with the employment of polymorphism as a tool for arranging data. The characteristics of conngurable objects make them similar to software boards, and as such they ooer to their clients new levels of exibility and extensibility. Conngurability allows also a diierent kind of reuse, that can not be achieved through inheritance nor composition. Conng-urable objects capture a relationship among classes and represent it in a form which can be reused when the related classes are improved. While the traditional techniques emphasize the development of components that may be useful in the future, conngurability encourages the reuse of improved components which may be developed in the future. Some consequences and potentials of the new technique were discussed through the exposition of several related concepts, such as compatibility and conngurability. Examples were presented to illustrate some possible applications of con-gurable objects, where traditional techniques are clearly unsatisfactory. These examples expose some of the merits and weaknesses of con-gurability. Finally, implementations strategies in C++ were presented and their applicability to these examples was demonstrated. We observe that C++, as well as many other major OOP languages, leaves something to be desired in terms of support of conngurable objects. We had to combine several features of C++ as a substitute of a single lingual construct for the deenition of slots and their operations. Moreover, while implementing conng-urable objects, we encountered several methods whose only action is resending a message to a component. This explicit forwarding could be avoided if the programming language had a facility for a conngurable to selectively export part of the interface of its components. Ideally, such a facility should also allow renaming of exported methods. The advantages of conngurable objects when …