取决于您所指的业务逻辑。任何赋予模型内容含义的“逻辑”都应该在模型中。在链接的问题中,投票率最高的答案似乎将“业务逻辑”定义为与数据相关的任何事物;从企业的数据就是其业务的角度来看,这是有道理的!
我曾经看过Rails的创建者(我认为)的一个例子,他正在对此进行精确的介绍-不在模型中添加“业务逻辑”。他的示例是用于应用程序注册和登录的控制器类和方法-以明文形式提供的密码在插入模型或对模型(数据库)进行查询之前已经过加密。
我想不到一个更好的例子,它不是控制器逻辑,而是直接属于模型。
该模型可以作为无数数据存储的接口,从而减轻了可移植性问题。在这里,无论模型接口是否实际上是“控制器”,人们都可能会感到困惑。
一般来说,控制器链接模型和视图(这是应用程序的基本要素)。在Cocoa开发中,可以简化到通过XCode GUI(控制器对象和绑定)处理控制器的程度。
关于MVC的GoF的“设计模式”部分,引用松散:
MVC三元组类用于在Smalltalk-80中构建用户界面。模型是应用程序对象,视图是其屏幕显示,控制器定义了UI对用户输入的反应方式。MVC通过在视图和模型之间建立订阅/通知协议来分离它们。下图显示了一个模型和三个视图。为了简单起见,我们省略了控制器。
MVC都是关于UI的。重点在于模型和视图-定义和显示数据。请注意“订阅/通知协议”-这是您的控制器所在的位置。您可以构建所需的所有视图。只要他们遵守协议,您就无需接触模型或控制器。
如果您是专门谈论Web开发,恕我直言,许多流行的Web框架都带有术语MVC及其组件定义,因此既快速又宽松。