Command オブジェクトを使用して制約を検証すると、Domain オブジェクトを使用して制約を検証するよりもパフォーマンス上の利点がありますか?
つまり、着信パラメーターをインターセプトしてコマンドオブジェクトに配置し、 cmd.hasErrors() を呼び出してから、それをオブジェクトにバインドして obj.save() を試行し、オブジェクト制約が検証を実行できるようにする場合
Command オブジェクトを使用して制約を検証すると、Domain オブジェクトを使用して制約を検証するよりもパフォーマンス上の利点がありますか?
つまり、着信パラメーターをインターセプトしてコマンドオブジェクトに配置し、 cmd.hasErrors() を呼び出してから、それをオブジェクトにバインドして obj.save() を試行し、オブジェクト制約が検証を実行できるようにする場合
パフォーマンス上の利点に気付いたことはありません。実際、これを行うとパフォーマンスがわずかに低下する可能性があります。コマンド オブジェクトはその検証とバインディングを行い、ドメイン オブジェクトも同様に検証とバインディングを行います。これは単なる推測であり、もし本当なら、おそらく比較的小規模なヒットです。
私の基本的な戦略は、厳密に単一のクラスに対してフォーム入力を行う場合、ドメインを使用することです。ドメインが必要ない場合 (ログインなど)、または複数のドメイン (著者と書籍など) が同じフォームにある場合は、コマンド オブジェクトを使用します。