摘要:<?phpclass A{ public $a=12;}class B{ public $a=13;}class Factory{ private static $arr=array(); public static function getInstance($name){ if(!isset(self::$arr[$name])){ self::$arr[$name] = new
<?php
class A{
public $a=12;
}
class B{
public $a=13;
}
class Factory{
private static $arr=array();
public static function getInstance($name){
if(!isset(self::$arr[$name])){
self::$arr[$name] = new $name();
}
return self::$arr[$name];
}
}
$obj1 = Factory::getInstance('A');
$obj2 = Factory::getInstance('A');
$obj3 = Factory::getInstance('B');
$obj4 = Factory::getInstance('B');
var_dump($obj1,$obj2,$obj3,$obj4);
//object(A)#1 (1) { ["a"]=> int(12) } object(A)#1 (1) { ["a"]=> int(12) }
//object(B)#2 (1) { ["a"]=> int(13) } object(B)#2 (1) { ["a"]=> int(13) }
//相同类只new出一个对象实例