2

私は Java デスクトップ アプリケーションを作成していますが、検証をどのように処理すればよいか疑問に思っていました。

コントローラーで登録情報 (ユーザー名、パスワードなど) を含むマップを受け取ります。ここで、マップからの情報を検証し、検証で発生したすべてのエラーを表示したいと考えています。そこで、validation という新しいパッケージにカスタム クラス RegistrationValidation を作成することを考えていました。次に、このクラスがエラーのあるリストを返すようにします。しかし、私は疑問に思っていました...

検証は正しいモデル クラスで行う必要があることを常に学びましたが、MVC の原則に反する検証クラスを作成していますか?

コントローラーまたはモデルから、この検証クラスをどこで呼び出す必要がありますか?

検証クラスを呼び出すにはどうすればよいですか? (メソッドを静的にする、シングルトンにする、コントローラー/モデルなどでインスタンスを作成するだけですか?)

検証を抽出するためのより良いソリューションはありますか?

4

1 に答える 1

0

良い質問。Map があれば、そこから Java Bean を簡単に作成できます。この Java Bean がモデルになり、エラーのリストを返す何らかの種類のパブリックvalidateメソッドが含まれます (キーをプロパティ名として持つエラーのマップとエラー メッセージも同様に機能する可能性があります)。

確かに、検証のいくつかの側面は、Bean データのみを使用して検証することはできません (たとえば、サインアップ ページの検証の場合、ユーザー名がまだ取得されていないことを確認するために、他のサービスを呼び出す必要があります)。この場合、追加のパラメーターをvalidate(サービスなど) に渡すことができます。

フローは次の可能性があります: コントローラーでデータを取得する、モデル (Java Bean) を作成する、その上で検証を呼び出す、表示するエラーのリスト (存在する場合) を返す、または次のビューに転送する。これは、MVC アプリケーションの非常に典型的なワークフローです。

ああ、何も静的にしないでください。シングルトンにしないでください。コントローラー間で検証を共有する場合は、コントローラーにバリデーターを挿入するだけです。春のフレームワークをチェックしてください。それはあなたにとって役立つかもしれません。

于 2012-03-24T13:47:18.713 に答える