Command Pattern を読みましたが、何かが足りないと思います。Command オブジェクトは、Receiver オブジェクトの詳細を抽象化するために存在します。ここでやめて、Command オブジェクトへの参照を保持し、適切なメソッドを適切なタイミングで実行できるように思えます。
では、なぜ Invoker が必要なのでしょうか? この追加の間接化にはどのような利点がありますか? レシーバーの詳細はコマンドの背後にすでに隠していますが、コマンドをクライアントからも隠す理由は何ですか?