シナリオ: オブジェクトに関するいくつかの入力パラメーターを受け取ります。例: Course
コースには、講師名、受講者数、コース時間、部屋番号などがあります。
入力を検証し (生徒数 > 0、午前 9 時 < 時間 < 午後 9 時など)、オブジェクトを作成する必要があります。無効な入力のエラーの原因を返す必要があります。
2つのアプローチを考えることができました
1) 静的メソッドを使用して別の Validator クラスを作成し、
- 入力を検証します (validate メソッドは true、または VALID、INVALID_TIME、INVALID_STUDENT_NUMBER などの列挙型を返します)。
- 入力が有効な場合、Bean をインスタンス化します。
短所:
- 入力値を検証する前に処理する必要がある場合、上記のパターンでは、入力が有効な場合は 2 回、Validator クラスで 1 回、Bean セッターの前で 1 回処理を行うことになります。無効な場合、validate メソッドはエラーのソースを返す必要があるため、Bean オブジェクトを返すことはできません。
2) Bean クラス自体の内部に検証メソッドを配置し、無効な入力に対して例外を返します。さまざまな種類の例外を通じて、エラーの原因を追跡します。
短所:
- 複数のカスタム例外を作成する必要があります。
- ホルダーオブジェクト自体の中に検証メソッドを含めるのは正しい方法ですか??
いくつかの設計パターンを調査しましたが、関連はありませんでした。
上記のアプローチの長所と短所、および従うべきより良い方法を理解するのを手伝ってください。