在服务类中定义依赖关系的建议架构方法是什么?
这是好的,当另一个班级,例如。 OrderService
依赖于存储库类ex。 CartRepository
代替CartService
?我应该总是为每个域对象创建一个存储库和一个服务吗?
public class CartService : ICartService
{
private IBuyerRepository _buyerRepository;
private ICartRepository _cartRepository;
private IConfigService _configService;
private ISimpleDataService _simpleDataService;
public CartService(IBuyerRepository buyerRepository,
ICartRepository cartRepository,
IConfigService configService)
{
_buyerRepository = buyerRepository;
_cartRepository = cartRepository;
_configService = configService;
}
public void Save(Cart cart)
{
_cartRepository.Save(cart);
}
}
OrderService
档案:
public class OrderService : IOrderService
{
public OrderService(ICartRepository cartRepository)
{
}
}
答案 0 :(得分:0)
您的实施是第一步,在一个简单但不太大的领域。
这样的实现有以下优点: 虽然每个http resquest只有一个服务管理它所需的所有存储库,但管理sql事务以保持完整性没有任何困难。
它有太多缺点: 您可以写两次或更多相同的业务规则......我们都很懒,所以这是一个问题。但是,当一个人或者你在6个月之后第三次在服务实现中调用存储库并忘记业务规则时,将会出现重大失败......再见可爱的域名......
我的建议是,服务只需调用其存储库,并在需要时调用封装自己逻辑的其他服务。 要记住的唯一技巧是传播事务以避免发生奇怪的事情。
希望它有所帮助, 于连