何がベストプラクティスなのかわかりません。
大きくて複雑なオブジェクトがいくつかあります (フラットではありません)。
そのオブジェクトには、多くの関連オブジェクトがあります。たとえば、Invoice はメイン クラスであり、そのプロパティの 1 つは InvoiceSupervisor です。これは、User と呼ばれる独自の大きなクラスです。
ユーザーは、フラットではなく、部門プロパティ (部門と呼ばれるオブジェクトも) を持つこともできます。
たとえば、新しい請求書を作成したいとします。
最初の方法:
クライアントに入力するフィールドをいくつか提示できます。そのうちのいくつかは、使用可能な値を入力する必要があるコンボになります。たとえば、利用可能なinvoiceSupervisors。次に、選択したすべての値をサーバーに送信し、サーバー上で新しい請求書を作成して、選択したすべての値をその新しい請求書に割り当てることができます。次に、新しいスーパーバイザーを割り当てる必要があります。選択したユーザーを、ユーザーがサーバーでコンボボックスから取得した ID でプルします。ユーザーが請求書の監督者に該当する場合など、ユーザーに対して何らかの検証を行う場合があります。次に、User オブジェクトを InvoiceSupervisor に割り当てます。次に、すべてのプロパティを入力したら、新しい請求書を保存します。
2 番目の方法:
最初に、サーバーを呼び出して新しい請求書を取得できます。次に、クライアントで選択したすべての値を入力できます。たとえば、サーバーを呼び出して新しいユーザー オブジェクトを取得し、コンボボックスからその ID を入力して、ユーザーを InvoiceSupervisor として割り当てることができます。クライアントで Invoice オブジェクトを入力した後、それをサーバーに送信すると、サーバーは新しい請求書を保存します。サーバーを保存する前に、いくつかの検証も実行できます。
では、クライアントでオブジェクトを作成してサーバーに送信するか、クライアントからすべての値を収集し、それらの値を使用してサーバーで新しいオブジェクトを作成するのが最善の方法ですか?