責任の連鎖とは?

責任の連鎖(CoR)には、オブジェクト指向設計パターンの各エンティティのアクティビティと責任を示すプロセスが含まれます。 オブジェクト指向設計には2つの基本要素があります。 コマンドオブジェクトと処理オブジェクト。 コマンドオブジェクトは処理オブジェクトへのコマンドを生成し、処理オブジェクトは処理可能なコマンドから選択し、残りをチェーン内の他のオブジェクトに渡します。 これはオブジェクト指向設計の基本原則であり、設計には柔軟性があります。たとえば、責任の連鎖の設計パターンの任意の場所にオブジェクトを新たに格納するなどです。

オブジェクト指向設計の背後にある利点は、送信者のコマンドを処理するオブジェクトが多数あるため、通信が送信者と受信者に限定されないことです。 コマンドを処理するために並んでいるさまざまなオブジェクトのチェーンがあり、それを処理できない場合は、チェーン内の次のオブジェクトに渡すことができます。 オブジェクトの1つがコマンドを受け入れるまで、責任の連鎖が続きます。

責任のチェーンは、より柔軟で、チェーンへの新しいハンドラーの追加をサポートする必要があります。 各ハンドラーはすべてのタスクを実行できないため、集合的に機能できるハンドラーのグループが必要です。 一部のコマンドは、チェーンの最後であっても未解決のままであるため、責任のチェーンにはいくつかの欠点があります。 この問題に対処するための1つの解決策は、考えられるすべての要求に対してすべてのハンドラーを実装することです。

責任の連鎖システム内の壊れたリンクに関連するいくつかの問題がある可能性があります。 プログラマがコマンドのリンクを忘れると、リクエストが失われる可能性があります。 要求表現は、責任の連鎖のすべてのコンポーネントで使用されているため重要です。 CoRの設計にある可能性のあるもう1つの欠陥は、具体的なハンドラーのいくつかの問題により、一部の要求がチェーンの最後で完全にアドレス指定されなくなる可能性があることです。 しかし、全体として、責任の連鎖は、関連するすべての側面を考慮して慎重に設計されていれば、実装するのに適したシステムです。

他の言語

この記事は参考になりましたか? フィードバックをお寄せいただきありがとうございます フィードバックをお寄せいただきありがとうございます

どのように我々は助けることができます? どのように我々は助けることができます?