Maison  >  Article  >  développement back-end  >  php设计模式 Builder(建造者模式)

php设计模式 Builder(建造者模式)

高洛峰
高洛峰original
2016-11-30 09:34:291184parcourir

复制代码 代码如下: 
/**
* 建造者模式
*
* 将一个复杂对象的构建与它的表示分离,使用同样的构建过程可以创建不同的表示
*/
class Product
{
public $_type = null;
public $_size = null;
public $_color = null;

public function setType($type)
{
echo "set product type
"; 
$this->_type = $type; 


public function setSize($size) 

echo "set product size
"; 
$this->_size = $size; 


public function setColor($color) 

echo "set product color
"; 
$this->_color = $color; 



$config = array( 
"type"=>"shirt", 
"size"=>"xl", 
"color"=>"red", 
); 

// 没有使用bulider以前的处理 
$oProduct = new Product(); 
$oProduct->setType($config['type']); 
$oProduct->setSize($config['size']); 
$oProduct->setColor($config['color']); 


// 创建一个builder类 
class ProductBuilder 

var $_config = null; 
var $_object = null; 

public function ProductBuilder($config) 

$this->_object = new Product(); 
$this->_config = $config; 


public function build() 

echo "--- in builder---
"; 
$this->_object->setType($this->_config['type']); 
$this->_object->setSize($this->_config['size']); 
$this->_object->setColor($this->_config['color']); 


public function getProduct() 

return $this->_object; 



$objBuilder = new ProductBuilder($config); 
$objBuilder->build(); 
$objProduct = $objBuilder->getProduct(); 

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:php设计模式 Adapter(适配器模式)Article suivant:PHP 文件上传