服务器之家

服务器之家 > 正文

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

时间:2019-12-02 13:52     来源/作者:PHP教程网

代码如下:


<?php 
/** 
* 建造者模式 

* 将一个复杂对象的构建与它的表示分离,使用同样的构建过程可以创建不同的表示 
*/ 
class Product 

public $_type = null; 
public $_size = null; 
public $_color = null; 

public function setType($type) 

echo "set product type<br/>"; 
$this->_type = $type; 


public function setSize($size) 

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


public function setColor($color) 

echo "set product color<br/>"; 
$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---<br/>"; 
$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(); 

相关文章

热门资讯

玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分
玄元剑仙肉身有什么用 玄元剑仙肉身境界等级划分 2019-06-21
男生常说24816是什么意思?女生说13579是什么意思?
男生常说24816是什么意思?女生说13579是什么意思? 2019-09-17
配置IIS网站web服务器的安全策略配置解决方案
配置IIS网站web服务器的安全策略配置解决方案 2019-05-23
Nginx服务器究竟是怎么执行PHP项目
Nginx服务器究竟是怎么执行PHP项目 2019-05-24
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情
华为nova5pro和p30pro哪个好 华为nova5pro和华为p30pro对比详情 2019-06-22
返回顶部