MVC框架

##MVC框架
MVC全名Model View Controller,是模型(model)——视图(view)——控制器(controller),一种软件设计典范(软件架构模式),用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑集中到一个部件里,不需要重新编写业务逻辑。
简介
开始存在于桌面程序中,M指的是业务模型,V指的是用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一程序可以使用不同的表现形式。
MVC编程模式
**Model(模型)**表示应用程序核心,是应用程序中用于处理应用数据逻辑的部分。通常模型对象负责在数据库中存取数据;在三个部件中模型拥有最多的处理任务,用来处理数据库,被模型返回的数据是独立的,也就是说模型与数据格式无关,没有被格式化,这样一个模型就能为多个视图提供数据。
**View(视图)**显示数据,通常视图是依据模型数据创建的;视图是用户看到并与之交互的界面,由HTML元素以及一些技术如XHTML、WML等一些表示语言组成,MVC的好处是可以处理很多不同的视图,在视图中其实没有真正的处理发生,它只是作为一种输出数据并允许用户操作的方式。
**Controller(控制器)**是应用程序中处理用户交互的部分,通常控制负责从视图中读取数据,控制用户输入,并向模型发送数据;当点击web页面中的超链接和发送HTML表单时,控制其本身不输出任何东西和做任何处理。它只是接受请求并决定调用哪个模型构建去请求处理,然后在确定用哪个视图来显示返回的数据。
MVC框架

优缺点

###优点

  • 耦合性低
    由于将视图层和业务层分离,所以很容易改变应用程序的数据层和业务规则,改变其中一个不会影响其他两个部件。
  • 重用性高
    MVC允许不同样式的视图来访问同一服务端的代码,比如用户可以使用手机或电脑来购买一件东西,虽然购买方式不一样,但是处理购买的物品的方式是一样的。由于模型返回的数据没有被格式化,所以同样的构件能被不同的界面使用。
  • 生命周期成本低(开发敏捷)
  • 可维护性高
  • 有利于软件工程化管理
    ###缺点
  • 没有明确的定义
    内部原理较为复杂,理解起来比较困难,因为业务层和视图层要进行严格的分离,所以每个构件在使用之前都要经过彻底的测试。
  • 不适用于小型中型的应用程序
  • 增加系统结构和实现的复杂性
  • 视图与控制器之间的过于紧密的连接
    虽然相互分离但是是联系紧密的部件,如果没有对方的存在应用则很有限,这样妨碍了它们的独立重用。
  • 视图对模型的低效率访问
    视图可能需要多次调用才能获得足够的数据来显示,对为变化数据的频繁访问,会降低操作的性能。

MVT模式

M:model模型和mvc中M功能相同,和数据库进行交互
V:view视图,和mvc中c功能相同,接受请求,进行处理,与M和T进行交互,返回应答
T:Template模版,和mvc中的v相似,产生html界面

运行流程:
1.用户点击注册按钮,将要注册的内容发送给网站的服务器;
2.通过路由找到view视图中的的函数,接受用户送来的注册数据,View告诉Model将用户的注册信息保存进数据库;
3.Model层将用户信息保存进数据库中;
4.数据库将保存结果返回给model;
5.model将保存的结果返回给View视图;
6.view视图告诉Template模版去产生一个html界面;
7.Template生成一个html内容返回给view视图;
8.view视图将html界面内容凡水黑浏览器
9.浏览器将接收到的html界面进行解析和展示。
流程框图
MVC框架