No Chain of Responsability podemos compor comportamentos (no caso pelo método setProximo do contrato) e criar uma cadeia de objetos, onde também é possível criar uma cadeia de objetos pelo Decorator (via construtor).
Portanto qual a principal diferença?