MVC各层的典型实现
来源:互联网 发布:因为你是范晓萱 知乎 编辑:程序博客网 时间:2024/05/16 16:07
- 模型层Model的典型实现
- 功能
- 模型层的典型代码模式
- 控制器调用模型层获取数据的典型做法
- 基础模型类
- 实现模型类的单例模型工厂
- 整个模型层的类库结构图
- 控制器层Controller的典型实现
- 控制器的作用
- 控制器类的常规做法
- 控制器的划分
- 控制器的动作
- 基础控制器类
- 视图层View的典型实现
- 功能
- 数据分类
- 模型层Model的典型实现
模型层(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.
- MVC各层的典型实现
- Structs是典型的MVC框架实现
- JPetStore项目分析——分析一个典型J2EE应用web层的实现
- MVC以及各层的作用
- mvc各层简单清晰的描述
- 谈谈我对MVC的View层实现的理解
- 用PHP开始你的MVC (四)实现View层
- 用PHP开始你的MVC (四)实现View层
- 用PHP开始你的MVC (四)实现View层
- 用PHP开始你的MVC (四)实现View层
- 用PHP开始你的MVC (四)实现View层
- 用PHP开始你的MVC (四)实现View层
- mvc.net 实现对Controller层的单元测试
- OSI七层协议各层功能及典型设备
- MVC每层的职责
- MVC每层的职责
- MVC-------Model层的不可或缺
- MVC层的接口调用
- [线段树] Chef and Array
- ActionResult 返回类型
- PAT A1002 A+B for Polynomials (25)
- ios 文件上传
- Python函数第五节
- MVC各层的典型实现
- iOS基础之属性修饰符的区别
- springMVC日期转化注释
- 仿新浪TabLayout代码片段
- Android Studio 的 Gradle大白话讲解
- maven连同所有依赖包一起打包成jar包
- 杭电oj DNA Sorting
- 高级加密标准AES的工作模式(ECB、CBC、CFB、OFB)
- 析构函数为什么是虚函数