PHP 빌더 패턴 코드 예제에 대한 자세한 설명

黄舟
풀어 주다: 2023-03-06 16:56:01
원래의
1771명이 탐색했습니다.

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();
로그인 후 복사

위 내용은 PHP 빌더 패턴 코드 예제에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!