设计模式之建造者模式

半城伤御伤魂 提交于 2019-11-29 22:30:14
建造者模式主要在于创建一些复杂的对象。将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示的设计模式;class Product {    private $_parts;    public function __construct()    {        $this->_parts = array();    }    public function add($part) {        return array_push($this->_parts, $part);    }}/** * 建造者抽象类 */abstract class Builder{    public abstract function buildPart1();    public abstract function buildPart2();    public abstract function getResult();}/** * 具体建造者 * 实现其具体方法 */class ConcreteBuilder extends Builder {    private $_product;    public function __construct()    {        $this->_product = new Product();    }    public function buildPart1(){        $this->_product->add('Part1');    }    public function buildPart2(){        $this->_product->add('Part2');    }    public function getResult(){        return $this->_product;    }}/** * 导演者 */class Director{    public function __construct(Builder $builder)    {        $builder->buildPart1();//导演指挥具体建造者生产产品        $builder->buildPart2();    }}//client$buidler = new ConcreteBuilder();$director = new Director($builder);$product = $buidler->getResult();echo '<pre>';var_dump($product);echo '</pre>';
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!