我一直在MVC配置中使用Zend Framework,在rails上阅读ruby并计划在Python中检查其他MVC框架(Django?)......我非常喜欢它隔离逻辑,安全性和验证的某些部分的方式.但是在使用它仅仅1年之后我在这里读到一个答案,说几乎每个人都有错误的MVC定义,这让我想知道...... MVC的正确定义是什么?我在哪里可以阅读有关模式和标准实现的内容?
更新:我承诺我们都知道BASIC定义(模型是一个控制器和一个视图,控制器上的动作在用模型制作了一些信息之后会带到一些信息)但我很想知道你的定义是什么认识每个人都知道,为什么这是错的(也许这会向每个人解释哪里可能有错误,意见,当然你对此有什么看法)
我发现人们对MVC的理解最大的错误是他们认为模式包含的内容比它更多.更具体地说,人们通常认为
Model = DataBase
View = HTML
控制器=业务逻辑和其他一切.
这通常是在较小的应用程序中工作的方式,但现实MVC是一种从演示代码中分离业务代码的方法.该模型完成所有真正的业务工作.视图提供外观和感觉,控制器将一个映射到另一个.
请参阅Martin Fowler所着的"企业应用程序架构模式"一书的第14章.
关于MVC的部分开头是:
"模型视图控制器(MVC)是最引用(和最错误引用)模式之一.它起源于Trygve Reenskaug在20世纪70年代后期为Smalltalk平台开发的框架.从那时起它在大多数UI中发挥了重要作用.框架和关于UI设计的思考."
它还说:
"当我想到MVC时,我看到两个主要的分离:将表示与模型分离并将控制器与视图分开.
...
其中,表示和模型的分离是软件中最重要的设计原则之一,唯一不应该遵循它的是在非常简单的系统中,模型中无论如何都没有真正的行为.一旦你得到一些非视觉逻辑,你应该应用分离.不幸的是,许多UI框架使得它变得困难,而那些没有的框架通常会在没有分离的情况下进行教学.
视图和控制器的分离并不重要,所以我建议在它真正有用的时候进行.对于富客户端系统而言,最终几乎没有,尽管在控制器被分离出来的Web前端很常见.这里的网页设计大多数模式都基于这一原则."