hide
Free keywords:
-
Abstract:
By \emph{open--world design} we mean that collaborating classes are so
loosely coupled that changes in one class
do not propagate to the other classes, and single classes can be isolated
and integrated in other contexts. Of course, this is what maintainability
and reusability is all about.
In the paper, we will demonstrate that in Java even an open--world design of mere
attribute access can only be achieved if static
safety is sacrificed, and that this conflict is unresolvable \emph{even if the attribute
type is fixed}. With generic language extensions such as GJ, which is a generic extension
of Java, it is possible to combine static type safety and open--world design.
As a consequence, genericity should be viewed as a
first--class design feature, because generic language features are preferably applied
in many situations in which object--orientedness seems appropriate.
We chose Java as the base of the discussion because Java is commonly known and several
advanced features of Java aim at a loose coupling of classes.
In particular, the paper is intended to make a strong point
in favor of generic extensions of Java.