Inheritance: extends Builder
Exemplo n.º 1
0
 public function testBuilder()
 {
     $builder = new ConcreteBuilder();
     $director = new Director($builder);
     $product = $builder->get();
     $this->assertEquals('good', $product->pull()[0]);
 }
Exemplo n.º 2
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);