public function testBuilder() { $builder = new ConcreteBuilder(); $director = new Director($builder); $product = $builder->get(); $this->assertEquals('good', $product->pull()[0]); }
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($buidler); $product = $buidler->getResult(); var_dump($product);