MVC模式讲解

 

项目开发常见流程介绍

 

1需求调研:

人员:项目经理(负责人)

成果:需求说明书;

 

2软件设计书:

人员:项目经理(负责人)

成果:详细设计说明书——通常这就是开发过程中的主要参考技术文档。

 

3界面设计:

人员:界面工程师(ps,fw,....)

成果:设计效果图;

 

4静态网页制作:

人员:前端工程师(html,css,js)

成果:静态网页;

 

5动态网页开发:

人员:程序员(软件工程师)

成果:基本可用的软件初级产品;

 

6测试:

人员:测试工程师;

成果:可用的符合需求的产品;

 

7上线运营:

人员:运维工程师;

成果:发现问题,提出新需求,提出改进建议。。。。

 

 

显示与逻辑相分离思想

提出需求:

在页面上,显示“当前时间”。

 

原始做法:显示与逻辑混合

(文件名为一个:2show_time.php)

显示与逻辑相分离做法:

(文件:2show_time.php):

 

 

模板技术

需求:

显示当前时间,并可以由用户来选择使用不同的风格进行显示;

 

基本做法:

获取数据的逻辑基本保持不变!

而:

表现数据的文件,可以有多个!

我们只要在php文件中,根据用户的“选择”(请求),以决定使用(载入)哪个模板文件;

 

逻辑文件(php)为:

模板文件(html)为:

 

 

mvc思想原理

mvc思想简单演示

需求:

在一个网页上,根据用户的请求(选择),来显示不同的时间效果:

效果1:只显示年月日

效果2:只显示时分秒

效果3(默认效果)显示年月日时分秒;

 

 

他们之间的关系大致如下:

MVC框架思想原理图

控制器:

Controller,是一个php文件,由浏览器直接请求(访问);

它需要做2件最核心的工作:

1,(根据请求),决定需要什么数据,并去调用模型文件(类),去获取该数据;

2,(根据请求),决定需要将数据显示在哪个视图文件中。

模型:

Model,是一个php文件,不能直接请求,只能“被载入”而发挥作用。

它的核心工作只有一个:

(根据控制器的要求)去生产数据;

视图:

View,是一个“伪html文件”(因为其中有极简单的php代码),它也不应由浏览器直接请求;

它的作用是:

结合html和css代码,显示相应的变量(数据)

 

有一个现实生产的类比原理图,可做参考:

类比:

mvc思想演示典型案例

目标:

(删除功能先不做)

模型文件(UserModel.class.php):

控制器文件(ShowAllUser.php):

 

视图文件:

 

 

模型层(Model)的典型实现

模型层的主要作用:

用于处理数据的存取操作,比如表的增删改查;

通常都是根据“控制器的要求”,以返回合适的数据;

有时候,控制器还需要“传递过来”相应的数据,才能获取对应的结果数据;比如:

获取id为5的用户的信息,此时控制器就需要传递过来“5”这个数据;

 

模型层的典型代码模式

class  模型类名{

function  方法1(){。。。}

function  方法2(){。。。}

function  方法3(){。。。}

。。。。。。。

}

 

说明:

1,每个方法,都是为了获取“某种数据”;

2,有的方法,可能需要一些参数(形参);

3,这些方法,通常都需要跟数据库打交道,则就都需要“mysqldb”工具类及相关的数据库连接数据;

 

示例代码:

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

require  ‘模型层类文件’;

$obj  =  new  模型对象();

$data  =  $obj->某个方法();

 

基础模型类

 

 

 

 

实现模型类的单例——单例工厂

目标:

模型类本身不变——不保证其本身是单例的;

但:

通过,该“单例工厂”去获得模型类的实例,就是单例的。

 

我们要的是,设计出这样一个“单例工厂类”;

通过该单例工厂类,去“获取”模型类的对象(实例);

 

应用(在控制器类文件中):

 

 

整个模型层的类库结构图

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

 

 

 

 

 

posted @ 2016-08-02 16:04  z2168465  阅读(185)  评论(0)    收藏  举报