在我的系统中,用户可以发布任意数量的旅行。小米用户类(域对象)是这样的
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 */
}
}
它有效,但我认为我的 User 类存在“贫血域问题”(或贫血 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 的新手,我不知道我是否采取了正确的方法。
谢谢(是的,我的英语很烂)。