所以我假设人们仍然只使用控制器逻辑之外的业务层?如果是这样,绘制的灰线在哪里,你在控制器类中没有放入你的业务层项目,反之亦然?在我看来,Controllers完全消除了对MVC应用程序中业务层的需求.
解决方法
在我看来,控制器层是视图的一部分.您称之为业务层的是什么,我称之为服务(不是Web服务;这只是众多部署中的一种选择).
业务层知道用于完成用户目标的用例和工作单元.
控制器完全用于验证,绑定和编组请求,确定满足请求所需的服务并将值传递给它,解组响应并将其路由到下一个适当的视图.
所以我同意你的标题中提出的假设:控制器!=服务.
来自Smalltalk的经典模式是模型 – 视图 – 控制器,它不同意我的观点,将视图和控制器分成不同的层.
我所描述的是在Java框架中为Web和桌面实现的内容.视图技术的改变通常意味着改变控制器.
因此,如果Smalltalk习语是模型 – 视图 – 控制器,则更现代的方法看起来像view-> controller-> service->模型/持久性.模型意味着“域对象”,它独立于所有视图技术.