演示工厂模式
<?php header("content-type:text/html;charset=utf-8"); //演示工厂模式 /* 需求:请设计一个类,该类有一个方法,能够做到这种效果: 给该方法传入一个类名,则该方法就可以返回这个类的对象。就像一个 “塑料制品”工厂:给它一个某种产品的“模具”,就可以生产该模具对 应的塑料制品。 */ //工厂类 class Factory{ static function GetObjectByClassName($class_name){ $obj1=new $class_name(); return $obj1; } } class A{}; class B{}; class C{}; //$F=new Factory(); //$obj1= $F->GetObjectByClassName("A"); $obj1= Factory::GetObjectByClassName("A"); $obj2= Factory::GetObjectByClassName("A"); $obj3= Factory::GetObjectByClassName("B"); $obj4= Factory::GetObjectByClassName("C"); $obj5= Factory::GetObjectByClassName("A"); echo "<br />";var_dump($obj1); echo "<br />";var_dump($obj2); echo "<br />";var_dump($obj3); echo "<br />";var_dump($obj4); echo "<br />";var_dump($obj5); /* object(A)#2 (0) { } object(A)#3 (0) { } object(B)#4 (0) { } object(C)#5 (0) { } object(A)#6 (0) { } */