Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Designmodus Builder (Builder-Modus)

PHP-Designmodus Builder (Builder-Modus)

高洛峰
高洛峰Original
2016-11-30 09:34:291152Durchsuche

复制代码 代码如下: 
/**
* Builder-Muster
*
* Trennt die Konstruktion eines komplexen Objekts von seiner Darstellung und verwendet denselben Konstruktionsprozess, um verschiedene Darstellungen zu erstellen
*/ 
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 "=>"rot", 
); 

// 没有使用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; 

öffentliche Funktion 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(); 

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn