gpt4 book ai didi

dao - 贫血领域对象?

转载 作者:行者123 更新时间:2023-12-02 04:04:34 25 4
gpt4 key购买 nike

在我的系统中,用户可以发布任意数量的行程。 Mi User类(域对象)是这样的

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问题,是否存在?):只有 private 字段以及“getters”和“setters”(而且我所有的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();
}
}

通过第二种方法,User类具有更多功能,但行程未存储在数据库中。

我想念什么吗?我是DAO的新手,我不知道我是否采用正确的方法。

谢谢(是的,我的英语太烂了)。

最佳答案

为什么不还将getAllTrips函数添加到User类?只要您的函数对一个用户对象起作用,就将函数添加到User类。

如果您对多个用户执行了操作(例如,

cancelTrip(int tripId) 
{
// remove trip from all users
}

关于dao - 贫血领域对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8375540/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com