Chain of Responsibility: Implementation
Passing commands in a single object is often the better choice. It incurs the cost of object creation, but minimizes the cost of passing parameters through chain.
Passing the information that comprises a command as separate parameters saves the cost of object creation at the cost of additional parameter passing.