Spring SimpleFormController で Business Objects を formBackingObjects として使用するための設計上の問題。
コントローラーの役割は、エンド ユーザーが新しいビジネス オブジェクトを Web アプリケーションに追加できるようにすることです。
したがって、formBackingObject(HttpServletRequest request) メソッドを介してビジネス オブジェクトを渡します。しかし、私たちは難問にぶつかりました。
新しいビジネス オブジェクトを作成するために使用しているファクトリでは、一部の属性を null にすることはできないというビジネス ルールが適用されます。しかし、エンド ユーザーが何を入力したいのかがわからないため、「必要な名前を入力してください」などの「合理的なデフォルト」を渡してきましたが、それはせいぜいハック/イッキーに思えます。
開発者は何をすべきか? これは古典的な鶏卵問題のように感じます。
すべてのビジネス オブジェクトはインターフェイスに基づいています。ビジネス オブジェクトを表すスタブを作成し、スタブを formBackingObject として渡し、フォーム送信時にスタブをファクトリに渡す必要がありますか? それとも、formBackingObject に何も渡さずに、リクエストから送信された情報を手動で収集する必要がありますか?
他の合理的なアイデア/パターンはありますか?
お時間をいただきありがとうございます。