工厂方法模式
<?php
/**
* @author :Eggshell Website:www.kangyunchuan.cn QQ:334192009 E-mail:zonko@163.com
* @name :Factory mode....
* @copyright :Have no ...
* Date:Sun May 24 14:24:18 CST 2009
*/
interface abstracted{
public function realCreate();
}
//女人类
class Woman{
public function action(){
echo '女人爱哭!';
}
}
//男人类
class Man{
public function action(){
echo '男人爱干活';
}
}
//创建女人
class WomanCreator implements abstracted {
public $chromosome;//染色体
public function realCreate(){
if ($this->chromosome == "xx") {
return new Woman();
}
}
}
//创建男人
class ManCreator implements abstracted {
public $chromosome;
public function realCreate(){
if ($this->chromosome == "xy" || $this->chromosome == "xyy") {
return new Man();
}
}
}
//人类工厂
class PersonFactory{
public function create($what){
$create = $what."Creator";
return $create = new $create();
}
}
$create = new PersonFactory();
$instance = $create->create('Woman');
$instance->chromosome = "xx";
$instance->realCreate()->action();
?>