在我的系统中,用户可以发布任意数量的旅行计划。我的User类(领域对象)如下所示:
所以如果我想获取id为1的用户的所有旅行信息:
并且,
通过这种第二种方法,用户类具有更多的功能,但是旅行计划并没有存储在数据库中。
我是否遗漏了什么?我是DAO的新手,不知道我是否采取了正确的方法。
谢谢(是的,我的英语很糟糕)。
public class User {
private String name;
private String id;
/* More private fields */
/* getters and setters */
}
所以如果我想获取id为1的用户的所有旅行信息:
/* Domain Layer */
public class UserManager {
...
public Trip[] getAllTrips(int userId) {
dao.getAllTrips(userId);
}
...
}
/* DAL Layer */
public class UserDaoImpl implements IUserDao {
public Trip[] getAllTrips(int userId) {
/* jdbc here */
}
}
它能够正常工作,但我认为我的用户类遭受了“贫血领域问题”(或者贫血POJO问题,这种情况是否存在?):只有私有字段和“getter”和“setter”(所有我的POJO都是如此)。
我考虑了另一种方法:
public class User {
/* More private fields */
private Trip[] trips;
/* getters and setters */
public Trip[] getTrips() {
return trips;
}
...
public void addTrip(Trip trip) {
// add the trip
}
}
并且,
public class UserManager {
public Trip[] getAllTrips(int userId) {
User user = dao.getUser(userId);
return user.getTrips();
}
}
通过这种第二种方法,用户类具有更多的功能,但是旅行计划并没有存储在数据库中。
我是否遗漏了什么?我是DAO的新手,不知道我是否采取了正确的方法。
谢谢(是的,我的英语很糟糕)。