当前位置:Gxlcms > PHP教程 > PHP建造者模式代码示例详解

PHP建造者模式代码示例详解

时间:2021-07-01 10:21:17 帮助过:19人阅读

PHP建造者模式代码示例详解

<?php
// 建造者模式

class Product
{
	private $size;
	private $color;
	private $type;

	public function setSize($size) {
		$this->size = $size;
	}

	public function setColor($color) {
		$this->color = $color;
	}

	public function setType($type) {
		$this->type = $type;
	}

	public function toString() {
		ob_start();
		echo 'Size: ', $this->size , '<br/>';
		echo 'Color: ', $this->color , '<br/>';
		echo 'Type: ', $this->type , '<br/>';
		return ob_get_clean();
	}
}

// 分别调用每个方法并不是最佳的做法
$product = new Product();

$product->setSize(100);
$product->setColor('red');
$product->setType('shirt');
// echo $product;

// -----------------------------------------------------------

/**
 * 建造者模式
 * 将一个复杂对象的构建与它的表示分离,使同样的构建过程可以创建不同的表示
 */
class ProductBuilder
{
	private $product;
	private $configs;

	public function construct($cfgs) {
		$this->configs = $cfgs;
		$this->product = new Product();
	}

	/**
	 * 构建对象
	 */
	public function buildProduct() {
		$this->product->setSize($this->configs['size']);
		$this->product->setColor($this->configs['color']);
		$this->product->setType($this->configs['type']);
	}

	public function getProduct() {
		return $this->product;
	}
}

$cfgs = array('size'=>100,'color'=>'blue','type'=>'shirt');
$builder = new ProductBuilder($cfgs);
$builder->buildProduct();
echo $builder->getProduct();

以上就是PHP建造者模式代码示例详解的详细内容,更多请关注Gxl网其它相关文章!

人气教程排行