Abstract
It has been recognized in several works that a slice of behavior affecting a set of collaborating classes is a better unit of reuse than a single class. Different techniques and language extensions have been suggested to express such slices in programming languages. We propose delegation layers, an approach that scales the OO mechanisms for single objects, such as delegation, late binding, and subtype polymorphism, to sets of collaborating objects. Technically, delegation layers combine and generalize delegation and virtual class concepts. Due to their runtime semantics, delegation layers are more flexible than previous compile time approaches like mixin layers.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
K. Arnold and J. Gosling. The Java Programming Language. Addison-Wesley, 1996.
AspectJ homepage, 2001. http://aspectj.org.
M. BCchi and W. Weck. Generic wrappers. In Proceedings of ECOOP 2000, LNCS 1850, pages 201–225. Springer, 2000.
K. Beck and W. Cunningham. A laboratory for teaching object-oriented thinking. In Proc. OOPSLA’ 89, 1989.
G. Bracha and W. Cook. Mixin-based inheritance. In Proceedings OOPSLA/ECOOP’90, ACM SIGPLAN Notices 25(10), pages 303–311, 1990.
A. Brown, R. Cardone, S. McDirmid, and C. Lin. Using mixins to build flexible widgets. In 1st International Conference on Aspect-Oriented Software Development AOSD’ 02, 2002.
K. B. Bruce, M. Odersky, and P. Wadler. A statically safe alternative to virtual types. In Proceedings ECOOP’ 98, 1998.
P. S. Canning, W. Cook, W. L. Hill, J. C. Mitchell, and W. G. Olthoff. F-bounded polymorphism for object-oriented programming. In Proceedings of the ACM Conference on Functional Programming and Computer Architecture, pages 273–280, 1989.
R. Cardone and C. Lin. Comparing frameworks and layered refinement. In Proceedings of the 23rd International Conference on Software Engineering ICSE’ 01, 2001.
C. Chambers. Predicate classes. In W. Olthoff, editor, Proceedings ECCOP’ 93, LNCS 707, pages 268–297. Springer, 1993.
M. Ellis and B. Stroustrup. The Annotated C++ Reference Manual. Addison-Wesley, 1995.
E. Ernst. Family polymorphism. In Proceedings of ECOOP’ 01, LNCS 2072, pages 303–326. Springer, 2001.
E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns. Addison Wesley, 1995.
W. Harrison, H. Ossher, and P. Tarr. Using delegation for software and subject composition. Technical Report RC 20946(92722), IBM Research Division T.J. Watson Research Center, Aug 1997.
R. Helm, I. M. Holland, and D. Gangopadhyay. Contracts: Specifying behavioural compositions in object-oriented systems. In Proceedings OOPSLA/ECOOP’90, ACM SIGPLAN Notices, pages 169–180, 1990.
I. M. Holland. Specifying reusable components using contracts. In Proceedings ECOOP’ 93, LNCS 615, pages 287–308, 1992.
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-oriented programming. In M. Aksit and S. Matsuoka, editors, Proceedings ECOOP’97, LNCS 1241, pages 220–242, Jyvaskyla, Finland, 1997. Springer-Verlag.
G. Kniesel. Type-safe delegation for run-time component adaptation. In R. Guerraoui, editor, Proceedings of ECOOP’ 99, LNCS 1628. Springer, 1999.
G. Kniesel. Dynamic Object-Based Inheritance with Subtyping. PhD thesis, University of Bonn, Institute for Computer Science III, 2000.
H. Liebermann. Using prototypical objects to implement shared behavior in object-oriented systems. In Proceedings OOPSLA’ 86, ACM SIGPLAN Notices, 1986.
O. L. Madsen and B. Müller-Pedersen. Virtual classes: A powerful mechanism in object-oriented programming. In Proceedings of OOPSLA’ 89. ACM SIGPLAN, 1989.
O. L. Madsen, B. Møller-Pedersen, and K. Nygaard. Object Oriented Programming in the Beta Programming Language. Addison-Wesley Publishing Company, 1993.
S. McDirmid, M. Flatt, and W. Hsieh. Jiazzi: New age components for old fashioned java. In Proceedings of OOPSLA’ 01, 2001.
M. Mezini and K. Lieberherr. Adaptive plug-and-play components for evolutionary software development. In Proceedings OOPSLA’ 98, ACM SIGPLAN Notices, 1998.
M. Mezini, L. Seiter, and K. Lieberherr. Component integration with pluggable composite adapters. In M. Aksit, editor, Software Architectures and Component Technology: The State of the Art in Research and Practice. Kluwer, 2001. University of Twente, The Netherlands.
M. Mezini. Dynamic object evolution without name collisions. In Proceedings ECOOP’ 97, LNCS 1241, pages 190–219. Springer, 1997.
K. Ostermann and M. Mezini. Object-oriented composition untangled. In Proceedings OOPSLA’ 01, 2001.
T. Reenskaug. Working with Objects: The OOram software Engineering Method. Manning, 1995.
D. Riehle and T. Gross. Role model based framework design and integration. In Proceedings OOPSLA’ 98, 1998.
L. M. Seiter, J. Palsberg, and K. Lieberherr. Evolution of object behavior using context relations. IEEE Transactions on Software Engineering, 24:79–92, 1998.
Y. Smaragdakis and D. Batory. Implementing layered designs with mixin-layers. In Proceedings of ECOOP’ 98, pages 550–570, 1998.
K. K. Thorup. Genericity in Java with virtual types. In Proceedings ECOOP’ 97, 1997.
M. Torgersen. Virtual types are statically safe. In 5th Workshop on Foundations of Object-Oriented Languages, 1998.
M. VanHilst and D. Notkin. Using role components to implement collaboration-based design. In Proceedings OOPSLA 96, 1996.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Ostermann, K. (2002). Dynamically Composable Collaborations with Delegation Layers. In: Magnusson, B. (eds) ECOOP 2002 — Object-Oriented Programming. ECOOP 2002. Lecture Notes in Computer Science, vol 2374. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-47993-7_4
Download citation
DOI: https://doi.org/10.1007/3-540-47993-7_4
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-43759-8
Online ISBN: 978-3-540-47993-2
eBook Packages: Springer Book Archive