我的 DDD 读数一直困扰着我。从我所见,似乎我的系统中每个给定的聚合根类型都只有存储库实例。
例如,考虑以下想象的情况作为更深领域模型的抽象:
当以“标准风格”编码时,我认为Owner
我的系统中的每个都有自己的汽车集合,所以会有相同数量的Car
集合(我应该称之为存储库吗?),因为有Owner
s。但是,如前所述,似乎在 DDD 中我应该在整个系统中只有一个 CarRepository
(我已经看到了将它们作为静态类访问的示例),并且要执行简单的操作,例如将汽车添加Owner
到应该使用域服务,对于简单的情况,这似乎不是非常友好的 API。
我在我的系统中只CarRepository
实例化一个(单例)是对的,还是我错过了什么?我想争取类似的东西
public void an_owner_has_cars() throws Exception {
Owner owner = new Owner(new OwnerId(1));
CarId carId = new CarId(1);
Car car = new Car(carId);
owner.addCar(car);
Assert.assertEquals(car, owner.getCarOf(carId));
}
但是如果不将存储库注入到Owner
中,这似乎是不可能的,这似乎是一种被禁止的事情。