1、MVC(Model-View-Controller)模式的基本思想是数据,显示和处理分离。模型(Model)是负责数据管理,视图(View)负责数据展示,控制器(Controller)负责业务逻辑和响应策略。
2、MVC模式用到了观察者模式、策略模式、组合模式
    模型使用观察者模式,让控制器和视图可以随最新的状态改变而更新。
    控制器是视图的策略,视图可以使用不同的控制器实现,得到不同的行为
    视图使用组合模式实现用户界面,用户界面通常组合了嵌套的组件,像面板、框架和按钮
3、MVC设计的优点
1)耦合性低:各个部件分离,一个发生改变,其他部分不受影响 
2)重用性高:模型和视图层可重复利用
3)部署快,生命周期成本低:可以只部署改的那一部分
4)可维护性高:分离视图层和业务逻辑层,也使得Web应用更易于维护和修改
4、MVC设计的缺点
1)没有明确的定义,理解比较复杂:内部原理复杂
2)不适合中小型应用程序:中小型项目使用MVC会使项目变得复杂,而且开发效率低
3)调试困难:因为模型和视图要严格的分离,这样也给调试应用程序带来了一定的困难,每个构建时在使用之前都需要经过彻底的测试。
4)增加系统结构和实现的复杂性:对于简单的界面,严格遵循MVC,使模型、视图域控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。
5、
模型层(Model):只从现实世界中抽象出来的对象模型,是应用逻辑的反映,它封装了数据和
对数据的操作,是实际进行数据处理的地方
视图层(View):是应用和用户之间的接口,它负责将应用显示给用户和显示模型的状态
控制器(Controller):控制器负责将视图和模型之间的交互,控制对用户输入的响应、响应
方式和流程,它主要是负责两方面的动作,一是把用户的请求分发到相应的模型,而是把模型
的改变及时的更新到视图上。
6、MVC的模型层其实包括了三层软件结构的业务逻辑层、数据访问层、实体类(业务实体类和
公用类)。软件三层结构中的web层包含了MVC中的视图层(V)和控制层(C)