Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Systematically refactoring inheritance to delegation in Java
Kegel H., Steimann F.  Software engineering (Proceedings of the 13th International Conference on Software Engineering, Leipzig, Germany, May 10-18, 2008)431-440.2008.Type:Proceedings
Date Reviewed: Aug 27 2008

Choosing between class inheritance and object delegation has been the topic of countless debates in the object-oriented (OO) programming community. This tension is the result of an overloading of the class inheritance mechanism [1]. Opting for a delegation instead of an inheritance gives more control to the programmer over operations that may be invoked, without bloating class interfaces.

Techniques to replace class inheritance with object delegation have already been proposed, however, none of them have been properly formalized and associated to an automatic-code transformation engine. Such a transformation is far from being trivial since many subtleties related to subtyping have to be taken into account. This is discussed in this paper.

Practitioners and researchers interested in the field of class inheritance and behavior composition will find this paper appealing, due to the accuracy of the analysis and reflection. Recently, there has been a resurgence of alternatives to class inheritance, such as mixins [2] and traits [3] that usually imply code migration [4]. It is likely that we will see applications of the results presented in this paper.

Reviewer:  Alexandre Bergel Review #: CR135998 (0910-0945)
1) LaLonde, W.; Pugh, J. Smalltalk: subclassing subtyping is-a. Journal of Object-Oriented Programming 3, 5(1991), 57–62.
2) Bracha, G.; Cook, W. Mixin-based inheritance. In Conference on Object Oriented Programming Systems Languages and Applications ACM, 1990, 303–311.
3) Ducasse, S.; Nierstrasz, O.; Schärli, N.; Wuyts, R.; Black, A.P. Traits: a mechanism for fine-grained reuse. ACM Transactions on Programming Languages and Systems (TOPLAS) 28, 2(2006), 331–388.
4) Cassou, D.; Ducasse , S.; Wuyts, R. Redesigning with traits: the Nile stream trait-based library. In 2007 international conference on Dynamic languages: in conjunction with the 15th International Smalltalk Joint Conference ACM, 2007, 50–75.
Bookmark and Share
  Reviewer Selected
Featured Reviewer
 
 
Polymorphism (D.3.3 ... )
 
 
Object-Oriented Programming (D.2.3 ... )
 
 
Patterns (D.3.3 ... )
 
 
Coding Tools and Techniques (D.2.3 )
 
 
Language Constructs and Features (D.3.3 )
 
Would you recommend this review?
yes
no
Other reviews under "Polymorphism": Date
Formalization of generics for the .NET common language runtime
Yu D., Kennedy A., Syme D. ACM SIGPLAN Notices 39(1): 39-51, 2004. Type: Article
Mar 10 2004
Polymorphic typed defunctionalization
Pottier F., Gauthier N. ACM SIGPLAN Notices 39(1): 89-98, 2004. Type: Article
Mar 11 2004
Parametric polymorphism for XML
Hosoya H., Frisch A., Castagna G.  Principles of programming languages (Proceedings of the 32nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Long Beach, California, USA, Jan 12-14, 2005)50-62, 2005. Type: Proceedings
Apr 7 2005
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy