 
 1.1 Addition or removal of a decorator does not need code modification
1.1 Addition or removal of a decorator does not need code modification 1.2 Addition or removal of an object to decorate does not need code modification
1.2 Addition or removal of an object to decorate does not need code modification 2.1 Minimal number of «Decorator» classes
2.1 Minimal number of «Decorator» classes 2.2 Maximal factorization between decorators and object to decorate
2.2 Maximal factorization between decorators and object to decorate 3.1 Objects to decorate have any knowledge on decorators
3.1 Objects to decorate have any knowledge on decorators 3.2 A decorator may be decorated by another decorator
3.2 A decorator may be decorated by another decoratorIn this solution, if we add a new decoration, there is no code modification. Moreover, the decorators are able to decorate themselves.
 
Except for adding a new Decorator, this solution is not so bad