DAO-DVO 設計を実装する 2 つの方法を見てきました。
1) DVO はオブジェクトであり、DAO はファクトリを使用してインスタンス化されます。つまり、DAO もオブジェクトです。2) DVO もオブジェクトですが、この場合、DAO はタスクを実行するために DVO を受け入れる静的メソッドのみを含むクラスです。
どちらの方法がより優れており、よりスケーラブルか疑問に思っていました。
DAO-DVO 設計を実装する 2 つの方法を見てきました。
1) DVO はオブジェクトであり、DAO はファクトリを使用してインスタンス化されます。つまり、DAO もオブジェクトです。2) DVO もオブジェクトですが、この場合、DAO はタスクを実行するために DVO を受け入れる静的メソッドのみを含むクラスです。
どちらの方法がより優れており、よりスケーラブルか疑問に思っていました。
妥当性に関しては、2番目のアプローチに反対することをお勧めします。静的メソッドは、コラボレーターをモックなどでオーバーライドすることにより、クラスの動作を調整することを防ぎます。MiškoHeveryが言うように、「静的メソッドはテスト可能性の死です」。
Spring フレームワークを試してください。DAO は Dependency Injection によって初期化され、単純な 'ole Java オブジェクトです。
次に、DAO のメソッドは、アプリケーションのすべてのレイヤーで使用されるドメイン オブジェクトのみを使用する必要があります。
実際に物理的にレイヤー化されていない限り、それほど多くのレイヤーを使用しないことを強くお勧めします. たとえば、切り離されたオブジェクトを送信して GUI を更新する必要があるリッチ クライアントのようなものがある場合、そうでない場合は苦痛の世界です。
データベース接続を作成するために DAO Factory をダウンロードする方法は?