什么是工厂模式:
根据不同的需求,产生不同的对象。(接收用户提供的参数{类名},创建对应的对象,并返回对象)
实现工厂模式代码:
//工厂模式:产生对象
class Factory{
//工厂模式不需要创建自己类的对象,因此方法都是静态的
//@param1 string $class ,需要创建对象的类名
//@return object,返回的是类的对象,失败返回false
public static function getInstance($class)
{
//加载类
self::setAutoload();
//创建对象
return new $class;
}
//自动加载类
public static function loadAction($class)
{
if(is_file("../Action/$class.class.php"))
{
include_once "../Action/$class.class.php";
}
}
//自动加载类注册
public static function setAutoload()
{
sql_autoload_register(array('Factory','loadAction'));
}
}
工厂单例模式配合使用:
class Factory{
//三私一公
private function __construct(){}
private function __clone(){}
private static $obj=array();
//工厂模式不需要创建自己类的对象,因此方法都是静态的
//@param1 string $class ,需要创建对象的类名
//@return object,返回的是类的对象,失败返回false
public static function getInstance($class)
{
//加载类
self::setAutoload();
//创建对象
if(isset(self::$obj[$class]))
{}else{
self::$obj[$class]=new $class;
}
return self::$obj[$class];
}
//自动加载类
public static function loadAction($class)
{
if(is_file("../Action/$class.class.php"))
{
include_once "../Action/$class.class.php";
}
}
//自动加载类注册
public static function setAutoload()
{
sql_autoload_register(array('Factory','loadAction'));
}
}