美文网首页
深入浅出MVC

深入浅出MVC

作者: 司马东阳 | 来源:发表于2017-05-24 18:07 被阅读32次

首先我们来看看MVC架构的示意图:

和访问者交互的是控制层(Controller层),控制器(controller)是同类交互的集合,每一个交互的操作,都对应了一个动作(action)。在Thinkphp框架中,全部的控制器类都必须继承于Action。

对数据库进行存取的是模型层(Model层),在Thinkphp框架中,全部的模型器类都必须继承于Model。

显示页面模板的是视图层(View层)。

上面简单描述了MVC架构的理解。

MVC理念是将网络系统划分为三个关注点:交互、数据、页面模板;也就是我们设计或分析一个网络系统,就可以从这三个角度去进行:

交互:

表现在系统提供了哪些功能,这些功能可以划分为哪些大类,每一个大类的功能分别都有些什么操作等等。

比如PHP论坛系统,我们可以粗略划分成板块、帖子、用户、站内信息、后台管理等几大类的功能,然后用户的功能里面又包括了注册、登录、修改用户信息等等的多个操作。

对应Thinkphp框架的控制层(controller层)而言,一个功能大类可以说是一个控制器类(当然,如果该类型概况的范围比较大,那么还需要继续拆分成多个控制器类),单个类型内的每一个功能就是一个动作(action,控制器类的方法函数)。

数据:

表现在系统对数据库进行了那些操作。网络系统几乎都需要和数据库打交道。那么,在进行对交互的分析和对系统本身的分析后,我们也大致上可以归纳系统需要哪些数据了。然后我们将这些数据整理归类,最终可以得出系统需要的数据表是哪些。

就刚才的PHP论坛,按照“板块、帖子、用户、站内信息、后台管理”这五个分类功能,我们可以基本归纳出它们需要:板块记录表、帖子记录表、用户表、站内信息表、后台设置表等等。

对模型层(Model层)而言,一个表可以说就是对应了一个模型类。而模型父类(Model)为这些模型类提供大部分与数据库存取的功能。

页面模板:

每一个网络系统的开发中,我们都将需要制作相当数量的页面。简单来说,控制器的每一个动作(action)都有可能产生一个页面,所以在理清所有交互,完成控制器的设计后(未写代码前),我们就可以得到需要的页面模板的清单了。然后在模板引擎的帮助下,页面模板的制作可以与控制器的开发同时进行,以提高开发效率。

按照上面的PHP论坛交互的设计,那么我们可以得到的页面模板有许多,比如板块方面,有首页模板、分区模板、板块模板等;帖子方面有帖子内容模板、发帖模板、回帖模板等。

根据“交互、数据、页面模板”这三个关注点,那么我们就可以比较全面地去分析和设计一个网络系统了。请注意这三个关注点并非孤立的,而“交互”正是“数据”与“页面模板”的基础,所以对“交互”的分析务必要做到正确并且完善。

作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。互联网+时代,时刻要保持学习,携手千锋PHP,DreamIt Possible。

相关文章

  • 深入浅出SpringMVC(小白篇)2

    深入浅出SpringMVC(小白篇)1深入浅出SpringMVC(小白篇)3 四. MVC框架时代1-Spring...

  • 2019-02-01

    接上文深入浅出Java MVC(Model View Controller) ---- (JSP + servle...

  • 深入浅出MVC

    首先我们来看看MVC架构的示意图: 和访问者交互的是控制层(Controller层),控制器(controller...

  • (读报时间)2018-06-20 .NET及相关开发资讯速递

    (读报时间)2018-06-20 .NET及相关开发资讯速递: 1.ASP.NET MVC深入浅出系列(持续更新)...

  • springboot : 深入浅出spring mvc

    spring mvc架构及最简单的应用 标签(空格分隔): springmvc springboot RestCo...

  • 深入浅出 MVC、MVVM、MVP

    对于绝大多数开发者来说,对于选择程序的架构,并没有太多的考虑。一方面是业务变化太快,怎么快,怎么来;另一方面,程序...

  • 深入浅出策略模式

    深入浅出设计模式(1)-策略模式 讲义要解决问题 什么是设计模式? 为什么23种设计模式中没有MVC模式 一些OO...

  • Swift编程(四):深入浅出MVC模式

    写在前面: 欢迎大家关注我的个人博客: 博客地址 ,这里主要是我在个人开发时候遇到的坑和挖完的坑,包括 PHP C...

  • 【深入浅出spring】Spring MVC 流程解析

    前言 其实一年前就想系统地记录下自己阅读spring源码的收获,搞一个深入浅出spring的系列文章,但是因为工作...

  • AutoLayout

    AutoLayout深入浅出一[前传] AutoLayout深入浅出二[基本使用] AutoLayout深入浅出三...

网友评论

      本文标题:深入浅出MVC

      本文链接:https://www.haomeiwen.com/subject/ekpoxxtx.html