Abstract: |
Nature vs. Nurture? The debate has obsessed the minds of psychologists
and philosophers for many years. However, for the object-orienteer, it
has never been a problem: an object {\em inherits} all of its properties.
In this work we ask if an object should not be subject to environmental
effects. We answer this question in the affirmative by demonstrating many
cases in which the character of an object must be affected by the environment
it is put in. We present a new abstraction mechanism - {\em Environmental
Acquisition} - which allows a component to inherit properties from its
enclosing composite(s). The need for environmental acquisition is demonstrated
in several application domains. It is shown that the absence of environmental
acquitision may lead to the creating of cumbersome programs. We propose
a strongly typed model for environmental acquisition that allows static
type checking of programs exploiting this mechanism, and compare it to
several other mechanisms including ordinary inheritance and delegation. |