<?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) { } */