php-建造者模式(Builder)解析

其与抽象模式相类似,都可以创建复杂的对象,但是抽象工厂更注重多个系列的产品对象,而Builder模式则着重于一步一步的构建一个复杂的对象,在最后一步才返回产品,

使用建造者模式的好处是:

1.将构造代码和表示代码相分离;

2.可以改变产品内部的表达方式

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

  

转载于:https://www.cnblogs.com/EvanHe/p/5473525.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值