Rumah  >  Artikel  >  pembangunan bahagian belakang  >  PHP建造者模式代码示例详解

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

黄舟
黄舟asal
2017-03-16 09:18:261813semak imbas

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 &#39;Size: &#39;, $this->size , &#39;<br/>&#39;;
		echo &#39;Color: &#39;, $this->color , &#39;<br/>&#39;;
		echo &#39;Type: &#39;, $this->type , &#39;<br/>&#39;;
		return ob_get_clean();
	}
}

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

$product->setSize(100);
$product->setColor(&#39;red&#39;);
$product->setType(&#39;shirt&#39;);
// 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[&#39;size&#39;]);
		$this->product->setColor($this->configs[&#39;color&#39;]);
		$this->product->setType($this->configs[&#39;type&#39;]);
	}

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

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

Atas ialah kandungan terperinci PHP建造者模式代码示例详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn