Flavor

Ein Flavor definiert Instanzvariablen und dient als Vorlage für Instanzen. Jede Instanz verweist auf ihren Flavor.

Generische Funktionen sind Operationen, die Instanzen als Argumente beim Aufruf verwenden. Sie enthalten normalerweise mehrere Methoden.

Eine Methode spezifiziert Code in Abhängigkeit von einer generischen Funktion und einem Flavor. Innerhalb des Codes einer Methode kann auf die Instanzvariablen des Flavors anhand ihrer Namen zugegriffen werden.

Ein Flavor kann aus mehreren anderen Flavors kombiniert werden. Dabei erbt der Flavor Instanzvariablen und Methoden seiner (direkten oder indirekten) Komponenten.


Quellen

Symbolics Common Lisp Language Concepts
Section "Overview of Flavors"
Seite 53ff

Howard I. Cannon
"Flavors - A non-hierarchical approach to object-oriented programming"
http://www.softwarepreservation.org/projects/LISP/MIT/nnnfla1-20040122.pdf