CLOS
|
The Common Lisp Object System, a powerful system for object-oriented programming which forms part of Common Lisp.
CLOS differs from most other object-oriented programming environments in the following ways:
- It offers multiple dispatch, or "multimethods".
- Therefore, methods are not considered to live within classes; they are conceptually grouped into generic functions instead, a form of mixin.
- CLOS doesn't provide encapsulation; that is considered to be the job of a different part of Common Lisp, the package system.
- Inheritance can cause methods to be combined together in arbitrarily complicated ways at the discretion of the programmer, and not merely overridden by one another.
- CLOS is dynamic, meaning that not only the contents, but also the structure of its objects can be modified at runtime. CLOS supports changing class definitions on-the-fly (even when instances of the class in question already exist) as well as changing the class membership of a given instance through the
change-class
operator.
CLOS has multiple inheritance and, unofficially, a meta-object protocol.de:Common Lisp Object System ru:CLOS