38,99 €
inkl. MwSt.
Versandkostenfrei*
Versandfertig in 6-10 Tagen
  • Broschiertes Buch

Unanticipated changes to complex software systems can introduce anomalies such as duplicated code, suboptimal inheritance relationships and a proliferation of run-time downcasts. Refactoring to eliminate these anomalies may not be an option, at least in certain stages of software evolution.
A class extension is a method that is defined in a module, but whose class is defined elsewhere. Class extensions offer a convenient way to incrementally modify existing classes when subclassing is inappropriate. Unfortunately existing approaches suffer from various limitations. Either class extensions…mehr

Produktbeschreibung
Unanticipated changes to complex software systems can
introduce
anomalies such as duplicated code, suboptimal
inheritance
relationships and a proliferation of run-time
downcasts. Refactoring
to eliminate these anomalies may not be an option, at
least in
certain stages of software evolution.

A class extension is a method that is defined in a
module, but
whose class is defined elsewhere. Class extensions
offer a
convenient way to incrementally modify existing
classes when
subclassing is inappropriate. Unfortunately existing
approaches
suffer from various limitations. Either class
extensions have a global
impact or they have a purely local impact, with
negative results for
collaborating clients. Furthermore, conflicting class
extensions are
either disallowed, or resolved by linearization, with
subsequent
negative effects.

To solve these problems we present classboxes, a
module system
for object-oriented languages that provides for
behavior refinement
(i.e., method addition and replacement). Moreover,
the changes
made by a classbox are only visible to that classbox
(or classboxes
that import it), a feature we call local rebinding.
Autorenporträt
Alexandre Bergel is Assistant Professor at the University of
Chile. He obtained his PhD
in 2005 from the University of Berne, Switzerland, under the
supervision of Prof.
Nierstrasz and Prof. Ducasse.