これは世界で最もくだらないWebサイトですが、これには必要なものが含まれているようです: http ://www.devshed.com/c/a/PHP/Design-Patterns-in-PHP-Factory-Method-and-Abstract-Factory/
使用例については実際のWebサイトを参照してください。ただし、Javaファクトリとほぼ同じです。
// define abstract 'ArrayFactory' class
abstract class ArrayFactory{
abstract public function createArrayObj($type);
}
// define concrete factory to create numerically-indexed array
objects
class NumericArrayFactory extends ArrayFactory{
private $context='numeric';
public function createArrayObj($type){
$arrayObj=NULL;
switch($type){
case "uppercase";
$arrayObj=new UppercasedNumericArrayObj();
break;
case "lowercase";
$arrayObj=new LowercasedNumericArrayObj();
break;
default:
$arrayObj=new LowercasedNumericArrayObj();
break;
}
return $arrayObj;
}
}
// define concrete factory to create associative array objects
class AssociativeArrayFactory extends ArrayFactory{
private $context='associative';
public function createArrayObj($type){
$arrayObj=NULL;
switch($type){
case "uppercase";
$arrayObj=new UppercasedAssociativeArrayObj();
break;
case "lowercase";
$arrayObj=new LowercasedAssociativeArrayObj();
break;
default:
$arrayObj=new LowercasedAssociativeArrayObj();
break;
}
return $arrayObj;
}
}