誰かがこれらのパターンで私の頭の中の混乱を解消してください:
- 指揮系統
- 責任の連鎖
私は、両方が同じであるサイト (責任の連鎖と同じであるコマンド チェーンの例) とそうでないサイトを見てきました。
これは私がそれぞれについて理解していることです:
指揮系統:
クラスは、同じインターフェースを実装するクラスのインスタンスである「コマンド」のリストを保持するプロパティを持つ CommandChain と呼びましょう。それらはすべて onCommand(command, arguments) を実装する必要があるとします。
CommandChain には、その中に新しいコマンドを登録するための addCommand() メソッドと、コマンド名とそのパラメーターを受け入れる runCommand() があります。このメソッドは、コマンドの 1 つが応答し、対応するアクションを実行し、ok を送信するまで、コマンドのリストをループする必要があります。
責任の連鎖
一部のサイトで見たように、これはほとんど同じですが、次の違いがあります。クラスにループするコマンドのリストを格納する代わりに、各コマンド インスタンスは次のコマンド インスタンスへの参照を格納します。
では、この違いは、両方の設計パターンが異なると考えるのに十分な大きさですか?
それらは実際にどのような場合に適用されますか?