PHP-MVC模型层的典型实现
1、1.基础模型类模型类,通常就是一个独立的类文件。其内部的代码,就是一些方法。这些方法,就是来完成有关数据的操作——增删改查。典型情况是: 在数据库中的每一个“表”(table),都会使用一个独立的模型类文件来跟他对应,并完成该表的各种可能需求中的增删改查工作。类似这样:
2、2.这些模型类,都有一些最基本的共同的工作,比如:使用mysqldb工具类。于是,我们可以将这些共同 的工作,放入到一个“父模型类”中,这些具体的模型类,都继承这个父模型类,这样就都具有这些功能。代码如下:
3、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、5.则,在控制器中获得一个模型对的代码改造为:
6、6.整个模型层的类库结构图图示:浏览器 --->>> 控制器 --->>> 模型工厂类 --->> 模型类 --->>> MySQLDB工具类 --->>> mysql数据模型对象->方法()返回数据;