次の興味深い議論を読みました:デコレーターよりも責任の連鎖を使用する理由 .
私の質問は、責任の連鎖よりもデコレーターを使用する理由です。
Decorator は、受け入れられた回答とまったく同じ理由で役立ちます。
連鎖をいつでも断ち切ることができるという事実が、責任の連鎖パターンとデコレータ パターンの違いです。
COR では、リクエストの実行は保証されません。リクエストは、チェーン内のリンクによってキャプチャおよび処理されることなく、チェーン全体を通過する可能性があります。対照的に、Decorator は、チェーン内のすべてのリンクによってリクエストが処理されるように強制します。これは、Decorator がオブジェクトを内部にラップし、通常は目的のメソッドにいくつかのステップを追加して機能を拡張するためです。
パターンの長所と短所の両方に同じ特徴が見られることがはっきりとわかります。使用するのに最適なパターンを選択するかどうかは、状況と開発者によって異なります。