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

 更新时间:2011年06月26日 11:24:10   作者:  
将一个复杂对象的构建与它的表示分离,使用同样的构建过程可以创建不同的表示
复制代码 代码如下:

<?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();

相关文章

  • asp函数split()对应php函数explode()

    asp函数split()对应php函数explode()

    今天小编就为大家分享一篇关于asp函数split()对应php函数explode(),小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • php+js实现裁剪任意形状图片

    php+js实现裁剪任意形状图片

    这篇文章主要为大家详细介绍了php+js实现裁剪任意形状图片,类似css mask,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-10-10
  • WordPress开发中的get_post_custom()函数使用解析

    WordPress开发中的get_post_custom()函数使用解析

    这篇文章主要介绍了WordPress开发中的get_post_custom()函数使用解析,get_post_custom()函数用于获取自定义字段,需要的朋友可以参考下
    2016-01-01
  • php数组转成json格式的方法

    php数组转成json格式的方法

    这篇文章主要介绍了php数组转成json格式的方法,实例分析了php操作数组及json格式数据的方法,需要的朋友可以参考下
    2015-03-03
  • 在Windows系统下使用PHP生成Word文档的教程

    在Windows系统下使用PHP生成Word文档的教程

    这篇文章主要介绍了在Windows系统下使用PHP生成Word文档的教程,要学习PHP的同学可以通过这样的方式来练练手^^需要的朋友可以参考下
    2015-07-07
  • PHP防止图片盗用(盗链)的方法小结

    PHP防止图片盗用(盗链)的方法小结

    这篇文章主要介绍了PHP防止图片盗用(盗链)的方法,结合实例形式分析了php通过修改Apache服务器配置及目录访问权限等方式实现图片防盗链的相关操作技巧,需要的朋友可以参考下
    2016-11-11
  • PHP概率计算函数汇总

    PHP概率计算函数汇总

    做项目的有时会弄个活动什么的,来让用户参加,既吸引用户注册,又提高网站的用户活跃度。同时参加的用户会获得一定的奖品,有100%中奖的,也有按一定概率中奖的,大的比如中个ipad,小的中个Q币。那么我们在程序里必然会设计到算法,即按照一定的概率让用户获得奖品。
    2015-09-09
  • 几个php应用技巧

    几个php应用技巧

    php小技巧PHP重定向
    2008-03-03
  • PHP排序算法类实例

    PHP排序算法类实例

    这篇文章主要介绍了PHP排序算法类,实例分析了插入排序、选择排序、冒泡排序、快速排序等排序算法的原理与实现技巧,需要的朋友可以参考下
    2015-06-06
  • PHP+Ajax实现无刷新分页实例详解(附demo源码下载)

    PHP+Ajax实现无刷新分页实例详解(附demo源码下载)

    这篇文章主要介绍了PHP+Ajax实现无刷新分页的方法,以完整实例形式详细分析了PHP结合ajax实现无刷新分页的具体步骤与相关技巧,并附带demo源码供读者下载参考,需要的朋友可以参考下
    2016-04-04

最新评论