Chain of Responsibilityパターン---行動

 

 

使用シナリオ:

 (1)複数のオブジェクトが存在する場合は、同一の要求を処理することができるが、要求が処理されている特定のオブジェクトによって、操作時間が動的に決定されます。この状況は、要求がこのチェーンで送信されたときにオブジェクトの責任となり、その後、彼らは、特定の責任によって処理され、責任の連鎖を形成する要求を処理するために目的を達成するために、デューティチェーンを使用することができ、実行時に動的オブジェクト判決。

(2)あなたはせず、明示的に受信者を指定したい場合は、Chain of Responsibilityパターンを使用することができ、複数のオブジェクトに要求を提出します。デューティチェーンは、依頼者と受信者の間のデカップリングを達成するために、要求者は、レシーバオブジェクトが要求を処理するためにどの知る必要はありません。

(3)あなたは、動的オブジェクト要求処理セットを指定したい場合は、デューティ・チェーンを使用することができます。デューティチェーンは、動的リクエスト・セットを処理するオブジェクトを動的に割り当てられた責任に対応する、動的に処理要求に関与するとデューティ・オブジェクト決定され、最終的に、すなわちデューティチェーンを構築します。

3つの関連するパターン

(1)高価なチェーン機能モードとの組み合わせモード

    これらの二つのモードを組み合わせることができます。責任オブジェクトは自動的に鎖を形成するために、親コンポーネントサブアセンブリの後継として、オブジェクトを組み合わせることにより、再帰的に呼び出す複合モードで組み合わせることができます。これは、既存の外部リンクを使用して言及し、この場合には、クライアントが使用している場合、チェーンを構築していないが、チェーンを構築する必要がありますが、複合オブジェクトツリーを構築する必要はありませんが、同じです。

(2)デューティ鎖および装飾パターン

    これら二つのモード特定の角度から、装飾的なパターンの機能を達成するために、お互いをシミュレートすることができ、類似しているが動的ターゲット機能装飾、装飾品、必要な装飾品に添加することができる同じインタフェースを実装。投稿あなたのチェーン・モデルは、責任の動的な組み合わせを可能にし、そこに標準関数オブジェクトの処理が終了するとあるが、あなたは、その機能と装飾的なパターン、東結び目する急いで自分自身を処理しますが、要求はラインを受け継がれ、次の終了した場合ほぼすべての役割の機能を使用すると、特定の機能を実現することができ、装飾品と同様です。そして、2つのモードの本質も似ており、両方がダイナミックな組み合わせの間に実行する必要があり、装飾的なパターンは、動的な組み合わせデコレータで、あなたのチェーンを投稿するには、責任オブジェクトのチェーンですが、標準のデザインパターンからの処理要求の動的な組み合わせが懸念され、これらの2注意すべき点は非常に異なるパターンが、あります。まず、装飾的なパターンは、透明な目的を達成するための機能を追加し、あなたのチェーン・モデルは、送信者と受信者のデカップリングを達成することである投稿することで、異なる目的、;別の、装飾的なパターンは無限の再帰呼び出しでは、オブジェクトの数に制限はありません装飾的な特徴が、あなたの仕事にチェーン・モードのプロセスが終了されることです。

(3)デューティ鎖および戦略モード

    これらの二つのモードを組み合わせることができます。チェーンはほとんどのパターンのようになるオブジェクトの選択ポリシーを選択することができます適切な治療に直接あなたの仕事を簡素化するために、そのポリシーの機能をシミュレートするために、Chain of Responsibilityパターンを使用することができる場合、これらの2つのモデルが、似ています。私達はちょうどこのポイントに責任の連鎖を簡略化する場合は、チェーンが存在しない、それが責任の連鎖呼び出すことはできません。二つのモードが実装の特定のモードを選択するために、ポリシーを使用して、時間のデューティデューティチェーン実装することができ、組み合わせて使用​​することができ、同じことがまた、機能を達成するためにあなたの義務・チェーン・モデルを使用して、ポリシーの実装戦略モードすることができ処理。同様に、デューティ鎖および状態パターンを組み合わせて用いてもよいです。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

おすすめ

転載: www.cnblogs.com/youngao/p/11401296.html