建造者模式:
将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示的设计模式;
目的:
消除其他对象复杂的创建过程
结构图:
优点:
建造者模式可以很好的将一个对象的实现与相关的“业务”逻辑分离开来,从而可以在不改变事件逻辑的前提下,使增加(或改变)实现变得非常容易。
缺点:
建造者接口的修改会导致所有执行类的修改。
以下情况应当使用建造者模式:
1、
2、
3、
使用建造者模式主要有以下效果:
1、
2、
3、
代码实现:
<?php
/1**
/1**
class
{
public
public
public
public
{
echo
$this->_type
}
public
{
echo
$this->_price
}
public
{
echo
$this->_color
}
}
$config
'type'
'price'
'color'
);
//不使用builder模式
$product
$product->setType($config['type']);
$product->setPrice($config['price']);
$product->setColor($config['color']);
//使用builder模式
/1**
class
{
public
public
public
{
$this->_object
$this->_config
}
public
{
echo
$this->_object->setType($this->_config['type']);
$this->_object->setPrice($this->_config['price']);
$this->_object->setColor($this->_config['color']);
}
public
{
return
}
}
$objBuilder
$objBuilder->build();
$objProduct
echo
var_dump($objProduct);