工厂模式小例子

原创 2018-10-29 11:58:43 155
摘要:<?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出一个对象实例


发布手记

热门词条