Table of Contents
責任パターンのチェーンは、ハンドラのチェーンに沿ってリクエストを渡すことができる行動設計パターンです。このパターンは、複数の検証手順を追加、削除、または簡単に並べ替えることができる、柔軟でカスタマイズ可能なデータ検証パイプラインを作成する場合に特に便利です。
責任パターンのチェーンを理解する
このパターンの背後にある主な考え方は、要求を処理する機会を1つ以上を1つ以上のオブジェクトに与えることによって、その受信機からのリクエストの送信者をデカップリングすることです。オブジェクトはチェーンにリンクされ、各オブジェクトはリクエストを処理するか、またはそれに渡るかどうかを決定します。
検証パイプラインの実装
検証パイプラインを実装するには、バリデータクラスを一連のバリデータを作成する、各々のバリデーションルールを担当します。これらのバリデーションは、各データが渡るチェーンを形成する、まとめてリンクされます。バリデータが無効な場合は、そのプロセスをシャットしたり、エラーを適切に処理したりすることができます。
バリデータインターフェイスの作成
一貫性を確保するために、すべてのバリデータに共通するインタフェースを定義します。このインターフェイスには、次のバリデータとデータを検証するためのメソッドが含まれている必要があります。
PHP の例:
[インターフェイスバリデータ] {[
]] public関数 setNext(Validator $validator):バリデータ;
] 公開機能検証($データ): bool;
コンクリートバリデーションの実装
各コンクリートバリデータが空でないかどうかをチェックするためのバリデータ:
〈]クラスノルエピバリデーション]
]] プライベート$nextValidator;
                                 &n 〔FLT:17〕 true;
] }
柔軟な検証チェーンの構築
検証パイプラインを作成するには、バリデータオブジェクトをインスタンス化し、 setNext メソッドを使用してリンクします。これにより、特定の要件に基づいてバリデーションの動的設定が可能になります。
事例:
$notEmptyValidator = new NotEmptyValidator();]]]
$emailValidator = new emailValidator();]
$notEmptyValidator->setNext($emailValidator);]]
この設定では、最初に空室確認を行なっているデータを確認し、最初のチェックパスがないか、メールとして検証します。
パターンの使用の利点
- 柔軟で動的検証パイプライン
- 検証手順の追加、削除、または再オーダーが容易
- データの処理から検証ロジックをデデュース
- コードの保守性とスケーラビリティを強化
責任パターンのチェーンを実装することで、開発者は、多様なアプリケーションのニーズに効率的に対応する堅牢で適応可能なデータ検証システムを作成することができます。