zoukankan      html  css  js  c++  java
  • php_mvc实现步骤三,四

    3match_mvc

    MVC

    ecshop的前台为例:

    功能一:

    首页

    购物车数据,商品分类数据,其他的首页需要的数据

    功能二

    拍卖活动

    购物车数据,商品分类数据,拍卖相关数据

    功能三:

    团购商品

    购物车数据,商品分类数据团购相关数据

    可见,应该数据处理分离出来,在需要的功能中调用即可!

    M:模型  用来操作表的

    V : 模版  用来显示页面

    C:控制器 调度 操作那个表产生数据 调用哪个模版显示数据

    此时采用三层分离(MVC)的方式实现比赛列表:

    C功能调度:

    M,数据处理

    V,结果展示

    注意:浏览器需要请求C来获得需要的内容!

    以上的划分方式,称之为MVC,项目架构思想!

    其中

    MModel,模型,项目中数据处理业务逻辑处理)单元。

    Vview,视图,项目中结果展示的单元模板文件)。

    CController,控制器,项目中负责某个功能整体流程调度单元。

    强调MVC项目架构思想(项目中代码的组织关系),不决定语法形式(OOP,面向过程)仅仅决定项目代码分工方式!

    特点如下

    浏览器仅仅C控制器交互。

    模型M和视图V都被控制器C所调用。

    模型M和视图V之间,不存在任何的交互。

    辨析

    MVC pk MVC框架?

    MVC:架构思想

    MVC框架基于MVC思想架构的一个框架(基础代码的集合)

    4match_model

    模型层典型实现

    典型MVC框架中,模型层代码组织结构是什么样的!、

    模型类

    每张表对应一个操作模型当前表中的所有操作,都是用该模型完成

    [模型类]每张表的操作模型,由某个模型类实例化而来的对象【语法】。

    每个表操作,对应模型对象的一个方法。

    模型类示例代码:

    同时修改控制器中,使用模型的方法:

    C

    Tip:模型,在项目中,通常指的是模型类的对象,而不是模型类本身。

    基础模型类

    显而易见,在模型,可能会出现重用的代码,例如(得到DAO对象过程),而且是每个模型对象的每个方法中都需要!

    其他具体模型类所继承:

    MatchModel

    基础模型类中增加初始化数据库操作对象的功能:

    Model.class.php

    实例化好的MYSQLDB类的对象,存储到模型对象的属性上,从保证,模型类的每个方法中都可以使用该属性。

    模型方法的使用:

    MatchModel->getList();

    何时调用该初始化DAO方法

    实例化模型类对象时,就需要操作数据库,就需要执行初始化DAO的方法

    可见在构造方法中被调用即可:

    Model.class.php

    此时的模型结构关系:

    模型的单例

    如果在一个功能控制器)中,如果使用某个表的多次操作,应该使用该表的一个模型就可以完成全部任务。

    如何保证模型的单例

    典型的,可以通过一个单例工厂来实现(为什么不三私一?是多个所有的模型类)都需要单例效果)

    工厂类

    直接new,不能实现需要的业务逻辑,需要辅助一段代码逻辑代码,才能确定如何去实例化对象,此时需要工厂类。

    模型对象的单例效果

    不能在需要模型时直接就实例化,因为不能实现单例效果,需要一段逻辑代码,来判断当前模型类是否已经实例化,如果实例化过,则直接返回实例化过的对象,否则实例化新的。

    代码实现:

    增加工厂类:

    Factory.class.php

    控制器中,为了得到单例对象,则需要通过工厂类的M方法完成:

    模型的流程

  • 相关阅读:
    jvm误区--动态对象年龄判定
    jmeter入门实例
    七牛云的文件上传和下载
    layer.prompt添加多个输入框
    zero copy图解
    java枚举的线程安全及序列化
    java单例模式
    ubuntu16.04 python3.5 opencv的安装与卸载(转载)
    独家git clone 加速方法
    apt get update无法正常使用解决方案(转载)
  • 原文地址:https://www.cnblogs.com/ybygb-geng/p/9894311.html
Copyright © 2011-2022 走看看