abstract:<?phpclass Factory{ private static $instance=array(); private function __construct(){ } private function __clone(){} public static function getSingleton($className){ if(!isset(self::$instance[$c
<?php
class Factory{
private static $instance=array();
private function __construct(){
}
private function __clone(){}
public static function getSingleton($className){
if(!isset(self::$instance[$className])){
self::$instance[$className] = new $className();
}
return self::$instance[$className];
}
}
class A{}
class B{}
$a = Factory::getSingleton('A');
$b = Factory::getSingleton('B');
var_dump($a,$a,$b,$b);
//object(A)#1 (0) { } object(A)#1 (0) { } object(B)#2 (0) { } object(B)#2 (0) { }
//工厂模式 相同类只实例化一次