首页 > 学院 > 开发设计 > 正文

建造者模式

2019-11-08 01:36:35
字体:
来源:转载
供稿:网友
<?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();
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表