工厂模式

<?php

//PHP工厂模式

//工厂类
class Factory{

/*
* 生产对象
* @param1 string $class,要得到的对象的类的类名
* @return object,对应类的对象
*/
public static function getInstance($class){
//加载类
if(self::autoload($class)){
//存在类
return new $class();
}else{
//不存在类
return false;
}
}

/*
* 加载类
* @param1 string $class,需要加载的类名
* @return 如果加载失败返回false
*/
private static function autoload($class){
//判断文件是否存在:要指定路径
if(is_file("{$class}.class.php")){
//加载
include_once "{$class}.class.php";
}elseif(is_file("../20150109/{$class}.class.php")){
include_once "../20150109/{$class}.class.php";
}else{
//加载失败
return false;
}

//成功
return true;
}
}

//调用工厂类获取对象
$db = Factory::getInstance('MyDB');
var_dump($db);
posted @ 2017-02-15 00:20  李修远  阅读(139)  评论(0编辑  收藏  举报