例如,客户服务有一种取消该客户特定订单的方法:
public class CustomerService : ICustomerService<Customer>
{
public void CancelOrder(int orderNo)
{
//customerRepository here...
}
}
然后,用于批处理的另一项服务也可以取消多个订单:
public class BatchService : IBatchService
{
public void CancelOrders(params int[] orderNos)
{
//What here?
}
}
取消客户订单的代码位于CustomerService
。 BatchService
是否应该CustomerService.CancelOrder
或是否应该只使用客户存储库?
答案 0 :(得分:1)
我不会两次写取消逻辑。你拥有它取决于你,但鉴于你目前的结构,我会将ICustomerService注入BatchService。所以课程看起来像
public class BatchService : IBatchService
{
public ICustomerService<Customer> CustService { get; set; }
public void CancelOrders(params int[] orderNos)
{
foreach (int orderNo in orderNos)
CustService.CancelOrder(orderNo);
}
}