【发布时间】:2009-09-01 20:30:11
【问题描述】:
从具有指定属性的域对象的集合中检索对象的最佳做法是什么?
例如,我们有一个汽车保险应用程序,它有两个类:一个带有汽车列表的人。如果我总是需要从具有指定 VIN 的人那里检索汽车,那么实现该方法的最佳方法是什么?我在下面提供了一些示例 - 欢迎其他示例
示例 1
在 Person 实体中添加一个新方法来检索 VIN
public class Person
{
private HashSet<Car> cars = new HashSet<Car>();
public Set<Car> getCars()
{
return this.cars;
}
public Car getCarByVin(VIN vin)
{
//loop over cars and retrieve the car with the VIN
}
}
因此,从应用程序来看,该过程将是......
VIN vin = new VIN(...);
Person person = personDao.getPerson();
Car personCar = person.getCarByVin(vin);
示例 2
在 Person 实体中创建一个新的列表集合,并将通过 VIN 方法检索到该集合中
public class Person
{
private CarSet cars = new CarSet();
public CarSet getCars()
{
return this.cars;
}
}
public class CarSet
implements Set<Car>
{
//implement required methods for Set
public Car byVin(VIN vin)
{
//loop over set and retrieve the car with the VIN
}
}
因此,从应用程序来看,该过程将是......
VIN vin = new VIN(...);
Person person = personDao.getPerson();
Car personCar = person.getCars().byVin(vin);
【问题讨论】:
-
你能告诉我们为什么你首先需要这辆真正的汽车吗?是为了展示还是您试图实现它们的特定行为?
-
@ShaneC - 给出的示例只是一个简单的示例,我可以发布它而无需解释完整的域。在我真正的问题中,我试图在另一个实体对象中使用集合中的一个对象作为业务规则。
标签: java dns domain-driven-design