A decorator makes it possible to add or alter behavior of an interface at run-time.
Especially in order to add behavior to them by weaving behavioral semantic (operational or translational).
MediaWiki's weak query functionality, based mostly upon text searches, has inspired the creation of extensions adding complex new behavior to the wiki syntax.
The Lively Kernel uses a Morphic graphics model to add behavior to a scene graph built from browser graphics.
Another extension adds behavior to the phenotype, since behaviors are also observable characteristics.
The Professional File System added trashcan-esque behavior at the filesystem level.
The calls to that API look the same as calls to a software library, however the runtime adds systematic behavior that implements an execution model.
Zonnon allows adding behavior to objects (and modules).
Adding or removing a property or behavior to the different units is easy because it allows us to extend the features of the unit itself.
Subclassing adds behavior at compile time, and the change affects all instances of the original class; decorating can provide new behavior at run-time for individual objects.