php中工厂方法的两个特殊例子

来源:互联网 发布:淘宝店铺优化排名 编辑:程序博客网 时间:2024/06/05 20:16

工厂方法,简单来说就是生成包含类的实例的一种方法。
工厂模式是最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式。
这里附上一个比较特殊的例子:
我们要创造一个地球人,地球有两种人,男人和女人:

<?php//实现工厂方法interface abstracted{    public function realCreate();}//女人类class Wuman{    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 Wuman();        }    }}//创建男人class manCreator implements abstracted{    public $chromosome;//染色体    public function realCreate(){        if($this->chromosome == "xy"){            return new Man();        }    }}//人类工厂class PersonFactory{    public function create($category){        $method = "{$category}Creator";        return $create = new $method();    }}$create = new PersonFactory();//创造人类$instance = $create->create('woman');//创造女人$instance->chromosome = "xx";//女性染色体$instance->realCreate()->action();?>
0 0