该类的作用就是帮助其他的类“生产”对象,也就是说,只要传递给这个“工厂”一个类名,就可以得到一个相应的对象。
工厂生产单例对象
一种单例的实现,但是不是三私一公的实现,而是在生产对象的工厂方法上处理
/**
* 利用工厂得到单例对象
*/
class Factory {
public static function getOBJ($class_name) {
static $obj_list = array(); // 保存已经实例化好了的对象
// 类名字就是元素的下标,对象本身就是元素的值
if(!isset($obj_list[$class_name])) {
if(file_exists('./' . $class_name . '.class.php')) {
include_once './' . $class_name . '.class.php';
}
$obj_list[$class_name] = new $class_name;
}
return $obj_list[$class_name];
}
}
/**
* 利用工厂得到单例对象
*/
class Factory {
public static function getOBJ($class_name) {
static $obj_list = array(); // 保存已经实例化好了的对象
// 类名字就是元素的下标,对象本身就是元素的值
if(!isset($obj_list[$class_name])) {
if(file_exists('./' . $class_name . '.class.php')) {
include_once './' . $class_name . '.class.php';
}
$obj_list[$class_name] = new $class_name;
}
return $obj_list[$class_name];
}
}
/** * 利用工厂得到单例对象 */ class Factory { public static function getOBJ($class_name) { static $obj_list = array(); // 保存已经实例化好了的对象 // 类名字就是元素的下标,对象本身就是元素的值 if(!isset($obj_list[$class_name])) { if(file_exists('./' . $class_name . '.class.php')) { include_once './' . $class_name . '.class.php'; } $obj_list[$class_name] = new $class_name; } return $obj_list[$class_name]; } }