PHP-MVC模型层的典型实现
1、基础模型类
模型类,通常就是一个独立的类文件。
其内部的代码,就是一些方法。
这些方法,就是来完成有关数据的操作——增删改查。
典型情况是: 在数据库中的每一个“表”(table),都会使用一个独立的模型类文件来跟他对应,并完成该表的各种可能需求中的增删改查工作。
类似这样:

2、这些模型类,都有一些最基本的共同的工作,比如:使用mysqldb工具类。
于是,我们可以将这些共同 的工作,放入到一个“父模型类”中,这些具体的模型类,都继承这个父模型类,这样就都具有这些功能。
代码如下:

3、同时,UserModel和ProductModel相应改为:


4、
4.单例模型工厂类
回想:
工厂(模型类),是指这样一个类:它能够生产所指定的某个类的对象。
模型工厂:
就是能够生产模型类的对象的“工厂类”;而且,通过该工厂所生产的模型类的对象,是“单例的”。
比如,我们现在有2个模型类:UserModel, ProductModel
为什么这些模型类,会需要单例呢?
因为,就模型类中的那些工作(方法)而言,有一个对象,就都可以调用那些方法。
示意如下:
class ModelFactory{
static function GetModel( $c ){ //$c是一个类名;
.......
return $c的对象
}
}
class A{};
class B{};
$obj1 = ModelFactory::GetModel(“A”); //得到A的对象
$obj2 = ModelFactory::GetModel(“B”); //得到B的对象
$obj3 = ModelFactory::GetModel(“A”); //得到A的对象,而且,它就是前面的那个$obj1,这样也就实现了单例。
详细代码如下:

5、则,在控制器中获得一个模型对的代码改造为:

6、整个模型层的类库结构图
图示:
浏览器 --->>> 控制器 --->>> 模型工厂类 --->> 模型类 --->>> MySQLDB工具类 --->>> mysql数据
模型对象->方法()
返回数据;
