0

たとえば、私は多くのテーブルを持っていpeople car houseます。一般的な DAO 設計の良い方法を知りたいです。

この場合、 とpeoplecarsありhousesます。独自のID、おそらくauto_increment int値carを持っています。また、 の PK であるhouse外部キーも持っています。userIduser

最初のステップとして、GenericDaoすべてのテーブルに基本的な CRUD 機能を提供するように設計します。

その後?

ユーザー A のすべての車を検索する必要があるため、withCarDao関数findAllCarsForUser(int userid)が必要です。については、同じものが必要です。人々が他の種類のものを持っている場合、それぞれに.findCarsByName(String name)findCarsByNameForUser(String name, int userid)HouseHouseDaoObjectXXXDao

しかし、上位層の場合、XXXDaoそれらにさらされる必要がありますか?

私はそうすべきではないと思うので、すべてDAOがラップされたServiceクラスなどを持っCarService HouseServiceています。ただし、これらのサービス クラスの関数については、おそらく statement のみreturn XXXDao.findCarsByNameForUser()です。サービス クラスには追加機能がまったく追加されていないか、ほとんど追加されていません。

XXXserviceまたは、このレイヤーにどのような機能を追加する必要がありますか?

Carandテーブルに参加するための要件が​​ある場合はHouse、おそらくCarHouseDaoandCarHouseServiceが必要です。

知りたいのですが、これは一般的な DAO にとって適切な設計ですか? そうでない場合、良いアドバイスや例はありますか?

4

0 に答える 0