Sau*_*ory 7 .net domain-driven-design ddd-repositories onion-architecture ddd-service
我一直在研究洋葱建筑学几天.我知道依赖关系应始终走向中心,以及如何使用依赖注入来实现这一目标.但我还有几个问题我仍然无法弄清楚.
模型(或实体)可以引用存储库接口或服务接口吗?
例如:Order实体具有DeliveryCity通过Oder.DeliveryZip属性建立的关系,该关系不是外键,而是唯一的.要获得拉链的城市,我必须打电话ICityRepository.FindByZip(zip)
我的模型中有以下代码
class Order
{
. . .
[Inject]
public ICityRepository CityRepository { get; set; }
private City _dCity;
public City DeliveryCity {
get {
if (_dCity == null)
_dCity = this.CityRepository.FindByZip(this.DeliveryZip);
return _dCity;
}
}
. . .
}
Run Code Online (Sandbox Code Playgroud)上述代码会出现什么问题?它应该使用域名服务吗?
域服务实现应该在核心内部还是在基础架构层中定义?
这就是工厂适应领域的地方.OrderFactory可以采用依赖关系,例如对IOrderRepository的依赖关系以及对ICityRepository的依赖关系.当工厂用于创建(或重组)Order实体时,工厂可以查找City并相应地设置Order属性.或者,正如herzmeister建议的那样,使用Lazy设置它,因此只在需要时才执行查找.
| 归档时间: |
|
| 查看次数: |
1837 次 |
| 最近记录: |