MVC

优点

在最初的JSP网页中，像数据库查询语句(SQL query)这样的数据层代码和像HTML这样的表示层代码是混在一起。虽然有着经验比较丰富的开发者会将数据从表示层分离开来，但这样的良好设计通常并不是很容易做到的，实现它需要精心地计划和不断的尝试。MVC可以从根本上强制性地将它们分开。尽管构造MVC应用程序需要一些额外的工作，但是它带给我们的好处是毋庸置疑的。
首先，多个View 能共享一个Model 。如今，同一个Web应用程序会提供多种用户界面，例如用户希望既能够通过浏览器来收发电子邮件，还希望通过手机来访问电子邮箱，这就要求Web网站同时能提供Internet界面和WAP界面。在MVC设计模式中， Model 响应用户请求并返回响应数据，View 负责格式化数据并把它们呈现给用户，业务逻辑和表示层分离，同一个Model 可以被不同的View 重用，所以大大提高了代码的可重用性。
其次，Controller 是自包含（self-contained,指高独立内聚）的对象，与 Model 和 View 保持相对独立，所以可以方便的改变应用程序的数据层和业务规则。例如，把数据库从MySQL移植到Oracle，或者把RDBMS数据源改变成LDAP数据源，只需改变Model 即可。一旦正确地实现了控制器，不管数据来自数据库还是LDAP服务器，View 都会正确地显示它们。由于MVC模式的三个模块相互独立，改变其中一个不会影响其他两个，所以依据这种设计思想能构造良好的少互扰性的构件。
此外，Controller 提高了应用程序的灵活性和可配置性。Controller 可以用来连接不同的Model 和 View 去完成用户的需求，也可以构造应用程序提供强有力的手段。给定一些可重用的Model 、 View 和Controller 可以根据用户的需求选择适当的Model 进行处理，然后选择适当的的View 将处理结果显示给用户。

实际范例

这里有一个通过JavaScript 所实现的基于MVC 模型，需要注意的是：MVC 不是一种技术，而是一种理念。
/** 模擬 Model, View, Controller */var M = {}, V = {}, C = {};/** Model 負責存放資料*/M.data = "hello world";/** View 負責將資料輸出到螢幕上*/V.render = (M) => { alert(M.data); }/** Controller 作為一個M 和 V 的橋樑*/C.handleOnload = () => { V.render(M); }/** 在網頁讀取的時候呼叫Controller */window.onload = C.handleOnload;
在这个简短的代码中就具有一个完整的MVC 模式。

MFC

微软所推出的MFC Document/View架构是早期对于MVC模式的实现，MFC将程序分成CView以及CDocument两大类别，其中的Document对应MVC中的Model ，View 相当于MVC中的View＋Controller，再加上CWinApp类别，合成三大项。但是基本上MFC是一个失败的MVC模式作品。
由于MFC之下的Document/View 定义过于模糊，未将Controller（MessageMap）部分取出，因此 Controller 可以置入View 或Document，但不管置入哪一方面，都会与View或Document绑死，没有弹性。

Java Swing

Swing是一个标准的MVC结构.
ComponentUI代表 View, 负责描画组件.
组件尤其Model 层, 比如JTextField的Document, JTable的TableModel, JTree的TreeModel等等.
而Control可能不是很明显, 我们或许可以简单的将其Event机制看作一个Swing团队开发给开发者的Controller。
作为Java开发者, 如果想理解MVC的结构, 学习Swing的确是个不错的选择.

Perl

Catalyst和Jifty是透过Perl语言所开发出来的Web Framework，都采用Model-View-Controller 架构。Catalyst 本身只是做了Controller，View 和 Model 让开发者自由选用CPAN 上的模块开发，例如 Template 和 Template Declare 都可用来产生视图。Jifty 将 MVC 完全实做完成，View 的部分在早期版本使用Mason 实做，较新版本使用Template Declare。

Ruby on Rails

Ruby on Rails是透过Ruby语言所开发出来的Web Framework，也是采用Model-View-Controller 架构。Model 部分使用Active Record 概念实做，加上Migration 机制，使得其Model 结构非常容易控制。

Python

Python 有许多的MVC 架构。最常用的有Django 和 TurboGears。