AppFuse Generic / Universal DAOおよびManagerの使用法
質問
私はしばらくの間AppFuseを使用してプロジェクトを作成しています。また、DAOクラスとManagerクラスの開発には2つのアプローチがあることを既に認識しています。
- GenericDao / GenericManagerアプローチ
- UniversalDao / UniversalManagerアプローチ
ユニバーサルアプローチを使用すると、すべてのエンティティを管理するために1つのクラスが必要になるため、より便利であることがよくあります。設計上、これは非常に悪い選択になるのではないかといつも思っていました。
Genericバリアントを好む理由はありますか?そして一般的に、アプリケーションで両方のクラスを混在させることをお勧めしますか?
解決
個人的には、いくつかの理由からUniversalDao / UniversalManagerを使用することを好みます:
- <!> quot; Generic <!> quot;通常、アプローチにはさらに多くの構成が含まれます。:エンティティごとにDAOとManagerを構成する必要があります。中規模から大規模なモデルの場合、これは受け入れられません。
- with <!> quot; Generic <!> quot;まだ多くのキャストを行う必要があるアプローチ。たとえば、Hibernateを使用すると、たとえばList <!> lt;から多くのダウンキャストを行うことになります。オブジェクト<!> gt;リストへ<!> lt; MyDomainClass <!> gt;
- Universalを使用すると、1つだけでなく多くのモデルクラスを管理する、より柔軟なDAOを作成できます。たとえば、Orders、Items、Categoriesを管理するOrderDAO。
そしてもちろん、2つのアプローチを混在させないでください!それは簡単にできますが、どのプロジェクトでも均一性は大きな美徳です;)
所属していません StackOverflow