学习MVC的一些总结

没有学习MVC之前,代码里是各种套啊,学完MVC后,整体代码清晰度提高了,感觉是:每一块功能体即是相互独立的不依赖,又是相互关联的协同工作——很神奇!

自己学习mvc 的一些总结(可能阐述的不够完善,纯属个人学习后的见解,主要以表明思路为主)

M:(model)模型

V:(view)视图

C:(controller)控制器


m (model)扮演的角色就是处理逻辑代码;比如需要一个查询的sql语句,模型负责连接数据库,组装sql语句,和执行sql语句(还有对sql语法的一 些检查)至于查询的结果,直接返回给控制器,它不参与结果的判断。

v (view)扮演的角色就是负责显示,当控制器调用模型取得对应数据后,再调用视图,把数据分配给视图显示;视图其他不管了。

c(controller)可以理解为调度员,它既不显示数据,又不参与处理数据,只负责对数据结果的判断后进行相互间的调配。

       1  比如用户输入网站域名(www.xxxxx.com),或已经进入网页中,在进行表单提交后,默认情况下都会对应一个默认的控制器来对用户的请求进行处理(一般默认的都是前端);为了保证网站的安全,一般都只会设一个网站入口(比如 index.php),从这入口文件进去后,先是对整体进行一个初始化的工作(比如统一字符集,自动加载,分发控制器,加载配置文件,加载插件文件,设置各个包含文件的文件夹的路径等),然后默认情况下,会去执行默认平台(所谓平台,就是前端和后台)下的默认控制器(根据平台,后台一般都是登录界面,前端一般都是首页面)。

      2  这时候,控制器开始工作了:(默认情况下平台是前端) 首先调配模型(是面向对象形式的)创建模型类的对象,然后通过对象去调用公共模型中的查询数据的方法(模型分:子模型和公共模型,一般多次会使用到的数据都会封装到公共模型中,供子模型调用)通过公共模型的一系列执行(这里省略了一些步骤,其实还有DAO层,公共模型一般只负责组织sql指令,执行的是DAO层)最后把数据返回,这时候,控制器会对返回的数据结果进行判断:如果数据存在,就调用对应显示首页数据的视图页面;如果数据不存在(可能域名不对,或是提交 表单时,密码用户输入错了等...)就去调用显示错误提示信息的视图页面。到这里为止一个简单的MVC执行流程就结束了。

     

 
<span style="font-size:18px;">
</span>

按着MVC的核心:代码重用,一次封装多处使用,提高了执行效率,降低了耦合度。

从控制器(对于程序员来说,控制器是核心)开始:控制器大体分成三种:

   1     子控制器          (负责获取用户请求的信息,调用模型获取信息,调用视图显示数据)

   2     公共控制器      (把多个子控制器都会用到的数据信息,封装到这里,供子控制器继承调用)

   3    顶层控制器       (把公共控制器里可能再次多次重复使用的数据,再次封装到这里(比如:smarty,前后端都会使用的,还有成功或失败的页面跳转,也是不限于平台都会使用的),供子控制器继承调用)

   示意图:     

子控制器是对应在不同的平台里,公共控制器和顶层控制器是单独存放于一个核心文件夹里;因为公共的是不属于某一个的,前后台都会使用得到的,所以单独用一个文件夹存放,供所有前后台的子控制器继承和调用。


 

模型:   不管是前端还是后台处理的逻辑都是一样的,只是显示的平台不一样而已,所以模型不分前后台。模型和平台属于同级别   文件,需要的使用直接引用即可。

模型大体也分为三个等级:

   1     和平台同目录和级别的模型:    (一个模型对应一张表的操作,在这一层的模型里,主要提供具体要操作的表,然后继承和调用公共模型去执行数据的读/写)。

   2    公共模型 :      (在这一层模型里,把读/写的sql语句组织了起来封装于此,引用DAO的空间,然后创建DAO类的对象,通过对象去调用DAO层的对应方法去执行这些sql指令)

   3   DAO :               (数据连接对象)主要负责对数据库的连接(使用单例模式,不允许无限制的创建对象)和执行sql指令,并且对sql语句进行语法的检查。


 示意图:


     

整体的执行流程图:


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值