我有一个由几层组成的解决方案:controller>服务>商业>知识库
我正在学习MVC,所以我尽可能地尝试遵循最佳实践.我认为控制器必须尽可能轻.假设我的控制器中有一个Edit动作,接收相应视图发布的视图模型.此视图模型是模型对象中包含的数据的减法.
我必须使用此视图模型实现的目标:
>(1)检索关联的对象模型
>(2)将我的视图模型映射到我的对象模型中(为了获得更新和完整的对象)
>(3)保存此更新的对象
>(4)准备要在视图中显示的通知
>(5)返回另一个视图
我的问题:我在哪里编写所有这些东西?
在我看来,点1,2,3必须在业务层中完成,而点4和5必须在控制器层中完成.
你确定吗?
谢谢.
最佳答案 >存储库具有数据访问逻辑.
>业务层将使用存储库来持久化对象
>业务层将检查业务规则,发送电子邮件等.大多数逻辑都在这里.
> Controller只使用Business层来执行功能.
服务类是我所称的业务层.如果您指的是Web服务,则表示Web服务的类应在内部调度对您的实际Business类的调用,否则您不需要在Business和Controller之间使用中间Service类.