Hi. Very nice write up on your blog.
Ronaldo Pace
1

Now I see what you mean. But why do you call all these objects Decorators? I can’t see any use of Decorator pattern here. In fact, it looks like the concept here is to “offload” functionality to classes which implement a predefined interface and can be selected at run-time. This scheme resembles Strategy pattern, or, maybe, Command pattern, but not Decorator. In any case, I do agree that extracting logic to “collaborator” classes which have one responsibility is always a good idea, and it will make unit-testing way easier. Thanks