0

比如我有很多表,诸如此类people car house,我想知道一般DAO设计的一个好的做法。

在这种情况下,peoplecarshousescarhouse拥有它自己的 id,也许是一个 auto_increment int 值。他们还有一个外键userId,即user.

第一步,我设计了一个GenericDao为所有表提供基本 CRUD 功能。

接着?

我需要找到用户 A 的所有汽车,所以我需要一个CarDaowith 函数findAllCarsForUser(int userid),它可能还有findCarsByName(String name)等等findCarsByNameForUser(String name, int userid)。对于House,同样HouseDao需要。如果人们有其他类型的东西,每个人都应该有一个ObjectXXXDao.

但是对于上层,应该XXXDao暴露给他们吗?

我认为不应该,所以每个DAO都有一个包装Service类,比如CarService HouseService等等。但是对于这些服务类中的函数,可能只有语句return XXXDao.findCarsByNameForUser()。没有或很少向服务类添加任何附加功能。

或者该层应该添加什么功能XXXservice

如果需要加入CarandHouse表,可能需要CarHouseDaoand CarHouseService

我想知道,这对于一个普通的 DAO 来说是不是一个好的设计?如果没有,有什么好的建议或例子吗?

4

0 回答 0