建造者模式 php
建造者模式主要在于创建一些复杂的对象。将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示的设计模式;
结构图:
class Product{
private $parts;
public function __construct()
{
}
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();
}
}
$builder = new ConcreteBuilder();
$director = new Director($builder);
$product = $builder->getResult();
var_dump($product);