rel*_*asr 13 asp.net-mvc ninject onion-architecture
我正在学习洋葱建筑.我对服务层感到困惑,因为我看到有些人说核心层应该只包含:
但其他人表示它也应该实现服务接口.那么什么层应该实现服务接口?
我认为基础设施层应该实现:
并在请求时将它们注入UI层和测试层.
谢谢!
Max*_*xSC 22
核心层应包含:
(*)如果您的业务是关于处理订单,那么您的实施IWorkOrderService应该在核心层.如果你WorkOrderService需要访问让我们说ShippingService(这不是你的业务),那么它只会操纵IShippingService核心层中定义的,IShippingService实现将在基础架构层的某个地方.
如果你的WorkOrderService需要,OrderRepository它将以同样的方式激动地完成.
这是一个代码示例:
namespace MyBusiness.Core.Services
{
internal class WorkOrderService: IWorkOrderService
{
public WorkOrderService(IOrderRepository orderRepository, IShippingService shippingService)
{
_orderRepository = orderRepository;
_shippingService = shippingService;
}
...
}
}
Run Code Online (Sandbox Code Playgroud)
这将取决于洋葱架构的最外层 - 依赖性解析层 - 在运行时将所有接口与正确的服务实现绑定在一起.
For<IWorkOrderService>().Use<Core.Services.WorkOrderService>();
For<IShippingService>().Use<Infrastructure.Services.ShippingService>();
For<IOrderRepository>().Use<Infrastructure.Data.OrderRepository>();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4112 次 |
| 最近记录: |