技術共有

デザインパターンの探索: 責任連鎖パターン

2024-07-11

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. 責任連鎖モデルとは何ですか?

責任連鎖モデル (責任連鎖パターン) は、行動設計パターンです。定義は次のとおりです。

  • リクエストの送信者と受信者を結合することを避け、複数のオブジェクトにリクエストを処理する機会を与えます。
  • リクエストを受信するオブジェクトをチェーンに接続し、オブジェクトが処理できるようになるまでこのチェーンに沿ってリクエストを渡します。
    ここに画像の説明を挿入します

2. 責任連鎖モデルの役割

  • リクエストとリクエスト処理を分離して、コードのスケーラビリティを向上させます。

3. 責任連鎖モデルの構造

ここに画像の説明を挿入します

責任連鎖モデルには主に次の役割が含まれます。

  • 抽象ハンドラーの役割: 抽象処理メソッドと後続の接続を含む、リクエストを処理するためのインターフェイスを定義します (チェーン内の各ハンドラーには、次のハンドラーへの参照を保存するためのメンバー変数があります)。
  • コンクリートハンドラーの役割: リクエストが処理できるかどうかを判断するための抽象プロセッサの処理メソッドを実装します。処理できる場合はリクエストを処理し、そうでない場合はリクエストを後続のリクエストに転送します。
  • クライアントの役割: 処理チェーンを作成し、チェーンの先頭にある特定のハンドラー オブジェクトにリクエストを送信します。処理の詳細やリクエストの配信プロセスは考慮されません。

実際の開発では、責任チェーン モデルに、特定のプロセッサを管理する責任チェーン マネージャーが追加される場合があります。

4. 実際の開発における責任連鎖モデルの適用

SpringBoot では、責任連鎖パターンを実践するためのさまざまな方法があり、その例を次に示します。注文プロセス用の複数の独立したチェック ロジックです。
ここに画像の説明を挿入します

4.1 実装方法1
  1. Pojoの作成、オブジェクトの注文
public class OrderContext {
    private String seqId;
    private String userId;
    private Long skuId;
    private Integer amount;
    private String userAddressId;
    // Getters and setters
}