码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式之建造者模式

时间:2019-09-18 00:41:31      阅读:78      评论:0      收藏:0      [点我收藏+]

标签:不同的   struct   echo   它的   push   bst   实现   abstract   str   

建造者模式主要在于创建一些复杂的对象。将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示的设计模式;

class Product {
private $_parts;
public function __construct()
{
$this->_parts = array();
}
public function add($part) {
return array_push($this->_parts, $part);
}
}

/**
* 建造者抽象类
*/
abstract class Builder
{
public abstract function buildPart1();
public abstract function buildPart2();
public abstract function getResult();
}

/**
* 具体建造者
* 实现其具体方法
*/
class ConcreteBuilder extends Builder {
private $_product;
public function __construct()
{
$this->_product = new Product();
}
public function buildPart1(){
$this->_product->add(‘Part1‘);
}
public function buildPart2(){
$this->_product->add(‘Part2‘);
}
public function getResult(){
return $this->_product;
}
}
/**
* 导演者
*/
class Director{
public function __construct(Builder $builder)
{
$builder->buildPart1();//导演指挥具体建造者生产产品
$builder->buildPart2();
}
}


//client
$buidler = new ConcreteBuilder();
$director = new Director($builder);
$product = $buidler->getResult();
echo ‘<pre>‘;
var_dump($product);
echo ‘</pre>‘;

设计模式之建造者模式

标签:不同的   struct   echo   它的   push   bst   实现   abstract   str   

原文地址:https://www.cnblogs.com/caohongchang/p/11537972.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!