建造者模式是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示,它着重于一步步构造一个复杂对象。
class product{
protected $_type = '';
protected $_size = '';
protected $_color = '';
public function setType($type){
$this->_type = $type;
}
public function setSize($size){
$this->_size = $size;
}
public function setColor($color){
$this->_color = $color;
}
public function getType(){
return $this->_type;
}
public function getSize(){
return $this->_size;
}
public function getColor(){
return $this->_color;
}
}
class productBuilder{
protected $_product = NULL;
protected $_configs = array();
public function __construct($configs){
$this->_product = new product();
$this->_configs = $configs;
}
public function build(){
$this->_product->setType($this->_configs['type']);
$this->_product->setSize($this->_configs['size']);
$this->_product->setColor($this->_configs['color']);
}
public function getProduct(){
return $this->_product;
}
}
$configs = array('type'=>'shirt', 'size'=>'XL', 'color'=>'red');
$builder = new productBuilder($configs);
$builder->build();
$product = $builder->getProduct();
echo $product->getColor();