您的位置:首页 > 产品设计 > UI/UE

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

2011-01-04 23:14 756 查看
<?php
/**
* 建造者模式
*
* 将一个复杂对象的构建与它的表示分离,使用同样的构建过程可以创建不同的表示
*/
class Product
{
public$_type=null;
public$_size=null;
public$_color=null;

publicfunctionsetType($type)
{
echo"set product type<br/>";
$this->_type =$type;
}

publicfunction setSize($size)
{
echo"set product size<br/>";
$this->_size =$size;
}

publicfunction 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;

publicfunction ProductBuilder($config)
{
$this->_object =new Product();
$this->_config =$config;
}

publicfunction build()
{
echo"--- in builder---<br/>";
$this->_object->setType($this->_config['type']);
$this->_object->setSize($this->_config['size']);
$this->_object->setColor($this->_config['color']);
}

publicfunction getProduct()
{
return$this->_object;
}
}

$objBuilder=new ProductBuilder($config);
$objBuilder->build();
$objProduct=$objBuilder->getProduct();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: