MVC各层的典型实现

来源:互联网 发布:因为你是范晓萱 知乎 编辑:程序博客网 时间:2024/05/16 16:07

    • 模型层Model的典型实现
      • 功能
      • 模型层的典型代码模式
      • 控制器调用模型层获取数据的典型做法
      • 基础模型类
      • 实现模型类的单例模型工厂
      • 整个模型层的类库结构图
    • 控制器层Controller的典型实现
      • 控制器的作用
      • 控制器类的常规做法
      • 控制器的划分
      • 控制器的动作
      • 基础控制器类
    • 视图层View的典型实现
      • 功能
      • 数据分类

模型层(Model)的典型实现

功能

用于处理数据的存取操作,比如表的增删查改。
通常都是根据“控制器的要求”,以返回合适的数据。(取)
有时候,控制器还需要传递过来相应的数据,才能获取对应的结果,例如需要传递方法的参数。(存)

模型层的典型代码模式

class 模型类名{
function 方法1(){。。。}
function 方法2(){。。。}
function 方法3(){。。。}
。。。
}
说明:
1.每个方法,都是为了获取“某种数据”。
2.有的方法,可能需要一些参数(形参)
3.这些方法,通常都需要跟数据库打交道,所以都需要“mysqldb”工具类及相关的数据库连接数据。

控制器调用模型层获取数据的典型做法

require '模型层类文件';$obj = new 模型对象();$data = $obj -> 某个方法();

基础模型类

见demo-2

实现模型类的单例(模型工厂)

见demo-3

整个模型层的类库结构图

dao: Data Access Object(数据访问对象)

这里写图片描述




控制器层(Controller)的典型实现

控制器的作用

1.获取请求数据2.调用模型获取数据:根据请求信息,以决定调用哪个模型来获取什么数据。3.载入视图文件以显示数据:根据请求信息,以决定载入哪个视图文件用以显示需要显示的数据。

控制器类的常规做法

这里写图片描述
可以按此模式,写更多的控制器,但基本模式都一样。

其功能:
1.用于获取用户的请求数据。
2.获取模型数据。
3.显示到视图中——或也可能直接输出。

控制器的划分

通常,一个项目中,会有很多的功能。我们通常会将一些“相关功能”合在一起,称为一个“模块”,并使用一个控制器去“表达”这个模块中的各个功能——其实就是方法。

图示:
这里写图片描述

控制器的“动作”

一个控制器,就是一个类。
一个控制器,就只包含一些方法。
所以,这些方法,被称为“动作”——因为每个方法,一定对应了网页界面上用户所在的某个”操作(动作、请求)“
习惯上,所有动作(方法),都以“Action”这个词为结尾。
这些动作(方法名),将会对应网页上的链接(或跳转或提交)动作中的“act”参数的值

图示:
视图文件动作:
A:这里写图片描述
B:这里写图片描述

对应控制器中的动作:
A:这里写图片描述
B:这里写图片描述

实际应用中,在网页的连接(或跳转或提交)的时候,传参的参数名我们会写成“a”。

例如:
这里写图片描述
则在控制器中获取数据时:
这里写图片描述

基础控制器类

用于将所有控制器功能(方法、动作)中的一些常见操作集中处理,比如设定文档编码、实现页面跳转。

图示:
这里写图片描述




视图层(View)的典型实现

功能

展示页面的静态内容,以及相关的变量数据。

数据分类

数据分为:    a.普通标量数据:echo $v1    b.数组数据:foreach($arr as $key => $value){...}    //循环输出            或:echo $arr['id']; echo ['age'];    //单独输出    c.对象数据:echo $obj->p1; echo $obj->p2.
0 0
原创粉丝点击