The concept of mixin programming has emerged as an important implementation technique in the context ol software reuse and software productivity. In mixin based programming classes are defined which support particular roles or capabilities, which may require to be attached to a number of other classes. Mixin classes can be composed dynamically so that composite objects with differing combinations of roles and capabilities may be created without redundancy. Implementing the mixin concept in C++ is straightforward, using the parameterized inheritance capabilities provided by C++ templates. In standard Java it is not possible to use this approach because Java does not currently provide templates. But the Java language has other powerfull facilities, of which one is reflection. In this paper we outline an approach to mixin programming in Java, which is subject to ongoing development and which is based on exploiting Java's reflection capabilities.
[1]
Yannis Smaragdakis,et al.
Mixin-Based Programming in C++
,
2000,
GCSE.
[2]
David Notkin,et al.
Using role components in implement collaboration-based designs
,
1996,
OOPSLA '96.
[3]
Krzysztof Czarnecki,et al.
A Solution to the Constructor-Problem of Mixin-Based Programming in C++
,
2000
.
[4]
David A. Moon.
Object-oriented programming with flavors
,
1986,
OOPSLA 1986.
[5]
Peter Kilpatrick,et al.
Adaptable Components for Software Product Line Engineering
,
2002,
SPLC.
[6]
Yannis Smaragdakis,et al.
Object-oriented frameworks and product lines
,
2000,
SPLC.
[7]
Davide Ancona,et al.
Jam - A Smooth Extension of Java with Mixins
,
2000,
ECOOP.
[8]
Yannis Smaragdakis,et al.
Implementing Layered Designs with Mixin Layers
,
1998,
ECOOP.