欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-04-09 15:19:35
...
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建造者模式代码示例详解的详细内容,更多请关注其它相关文章!

相关标签: PHP,建造者模式