PHP设计模式——建造者模式(builder)
2015-10-08 11:08
766 查看
建造者模式是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示,它着重于一步步构造一个复杂对象。
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();
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();
相关文章推荐
- 一个关于if else容易迷惑的问题
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- PropertyChangeListener简单理解
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- 设计模式之创建型模式 - 特别的变量问题
- 七、设计模式——装饰模式
- 设计模式总结
- 设计模式之创建型模式
- PHP数据库长连接mysql_pconnect的细节
- 浅谈设计模式的学习
- Php Installing An Expansion
- PHP+Apache在Windows 9x下的安装和配置
- IIS 6 的 PHP 最佳配置方法
- 安装Apache和PHP的一些补充
- Linux Apache+MySQL+PHP